Introduction to Andrew File System (AFS)

This lesson presents an introduction to the Andrew File System (AFS) and the motivation behind it.

The Andrew File System“Scale and Performance in a Distributed File System” by John H. Howard, Michael L. Kazar, Sherri G. Menees, David A. Nichols, M. Satyanarayanan, Robert N. Sidebotham, Michael J. West. ACM Transactions on Computing Systems (ACM TOCS), Volume 6:1, February 1988. The long journal version of the famous AFS system, still in use in a number of places throughout the world, and also probably the earliest clear thinking on how to build distributed file systems. A wonderful combination of the science of measurement and principled engineering. was introduced at Carnegie-Mellon University (CMU)Though originally referred to as “Carnegie-Mellon University”, CMU later dropped the hyphen, and thus was born the modern form, “Carnegie Mellon University.” As AFS derived from work in the early ’80s, we refer to CMU in its original fully-hyphenated form. See https://www.quora.com/When-did-Carnegie-Mellon-University-remove-the- hyphen-in-the-university-name for more details, if you are into really boring minutiae. in the 1980s. Led by the well-known Professor M. Satyanarayanan of Carnegie-Mellon University (“Satya” for short), the main goal of this project was simple: scale. Specifically, how can one design a distributed file system such that a server can support as many clients as possible?

Press + to interact

Interestingly, there are numerous aspects of design and implementation that affect scalability. Most important is the design of the protocol between clients and servers.

In NFS, for example, the protocol forces clients to check with the server periodically to determine if cached contents have changed; because each check uses server resources (including CPU and network bandwidth), frequent checks like this will limit the number of clients a server can respond to and thus limit scalability.

AFS also differs from NFS in that from the beginning, reasonable user-visible behavior was a first-class concern. In NFS, cache consistency is hard to describe because it depends directly on low-level implementation details, including client-side cache timeout intervals. In AFS, cache consistency is simple and readily understood: when the file is opened, a client will generally receive the latest consistent copy from the server.

Get hands-on with 1400+ tech skills courses.