On the ubiquity of logging in distributed file systems

It is argued that logging should be at the forefront of techniques considered by a system designer when implementing a distributed file system. The use of logging in different guises in the Coda file system is described. Coda is a distributed file system whose goal is to provide highly available, scalable, secure and efficient shared file access in an environment of Unix workstations. High availability is achieved through two complementary mechanisms, i.e., server replication and disconnected operation. Logging is used in at least three distinct ways in the current implementation of Coda. First, value logging forms the basis of the recovery technique for recoverable virtual memory (RVM), a transactional virtual memory package. Second, operating logging is used in the replay log that records update activity made by a client while disconnected from all servers. Third, operation logging is used in resolution logs on severs to allow transparent resolution of directory updates made to partitioned server replicas.<<ETX>>