Andrew File System
Morris et al. 1986 created a distributed computing environment for use as a campus computer and information system at Carnegie Mellon University (CMU). An AFS is used by businesses to make it easier for AFS client workstations in different locations to access stored server files. It presents a homogeneous, location-independent file namespace to all client workstations via a group of trustworthy servers. After login onto workstations that communicate inside the Distributed Computing Infrastructure, users exchange data and programs (DCI). The goal is to facilitate large-scale information exchange by reducing client-server communication. This is accomplished by moving whole files between server and client computers and caching them until the servers get a more recent version. An AFS uses a local cache to improve speed and minimize effort in dispersed networks. A server, for example, replies to a workstation request by storing data in the workstation’s local cache.
Andrew File System Architecture:
- Vice: The Andrew File System provides a homogeneous, location-transparent file namespace to all client workstations by utilizing a group of trustworthy servers known as Vice. The Berkeley Software Distribution of the Unix operating system is used on both clients and servers. Each workstation’s operating system intercepts file system calls and redirects them to a user-level process on that workstation.
- Venus: This mechanism, known as Venus, caches files from Vice and returns updated versions of those files to the servers from which they originated. Only when a file is opened or closed does Venus communicate with Vice; individual bytes of a file are read and written directly on the cached copy, skipping Venus
This file system architecture was largely inspired by the need for scalability. To increase the number of clients a server can service, Venus performs as much work as possible rather than Vice. Vice only keeps the functionalities that are necessary for the file system’s integrity, availability, and security. The servers are set up as a loose confederacy with little connectivity between them.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
The following are the server and client components used in AFS networks:
- Any computer that creates requests for AFS server files hosted on a network qualifies as a client.
- The file is saved in the client machine’s local cache and shown to the user once a server responds and transmits a requested file.
- When a user visits the AFS, the client sends all modifications to the server via a callback mechanism. The client machine’s local cache stores frequently used files for rapid access.
- Client processes communicate with a UNIX kernel via standard system calls.
- The kernel is tweaked significantly to identify references to Vice files in relevant activities and route requests to the workstation’s Venus client process.
- If a volume is missing from this cache, Venus contacts any server it already has a connection with, asks for the location information, and enters it into the mapping cache. Venus makes a new connection to the server unless it already has one. The file or directory is then retrieved using this connection.
- Authentication and security need the establishing of a connection. A copy of the target file is made on the local disc when it is located and cached.
- Venus then returns to the kernel, which opens the cached copy and gives the client process the handle to it. Both AFS servers and clients use the UNIX file system as a low-level storage system. On the workstation’s disc, the client cache is a local directory. This directory contains files with placeholder names for cache entries.
- Both Venus and server processes use the latter’s modes to access UNIX files directly, avoiding the costly path-name-to-inode conversion method.
- When a file is deleted from the cache, Venus informs the relevant server that the callback for that file has been removed.
- Shared files that aren’t updated very often and local user files that aren’t updated too often will last a long time.
- It sets up a lot of storage space for caching.
- It offers a big enough working set for all of a user’s files, ensuring that the file is still in the cache when the user accesses it again.