‘Sun’s network file system’ is a chapter in the OSTEP book by Remzi and Andrea Arpaci-Dusseau that describes the Network File System (NFS) protocol developed by Sun in 1986. More specifically, it describes the NFSv2 protocol. NFS is an early example of a distributed file system and serves as a case study in the early thinking around distributed file systems (and distributed systems in general).

A figure from the chapter describing the high-level architecture of a distributed file system. It consists of multiple clients that access data over a network fom a centralized file server. The image shows that the file server as a RAID array, which although common, is not a necessity for a distributed file system.
Another figure from the chapter that describes how a distributed file system is actually composed of a client-side and a server-side file system to provide transparent access to the client applications.
A local file system (shown on the left) maintains the mapping of the file descriptor to the file (inode number) and the offset within a file. In contrast, this state is stored by the client-side file system for NFS. This enables the server-side file system to be stateless, thus simplifying the recovery from a file server failure.
This figure from the chapter shows three different failure modes — network failure causing a request packet loss, server failure, and network failure causing a response (acknowledgement) packet loss. Idempotent operations offer a simple solution to handle either of these failures — retry the request if it has not been acknowledged as successfully completed.
The cache-consistency problem. The figure shows a timeline with one file server and three clients. The “File” originally contains some data which is represented by its red color. The color of the word “File” changing from red to purple shows that client A has updated the file data. However, when client B reads that file, it still gets the old file data because client A has cached its updates. This is referred to as the update-visibility problem. Additionally, even after client A flushes its cache and updates the file on the server, because client C had read and cached the file before this happened, it continues to read the old file data. This is referred to as the stale-cache problem.

Visit afterhoursacademic.com for summaries of computer science research papers.