Coda: A Highly Available File System for a Distributed Workstation Environment

The design and implementation of Coda, a file system for a large-scale distributed computing environment composed of Unix workstations, is described. It provides resiliency to server and network failures through the use of two distinct but complementary mechanisms. One mechanism, server replication, stores copies of a file at multiple servers. The other mechanism, disconnected operation, is a mode of execution in which a caching site temporarily assumes the role of a replication site. The design of Coda optimizes for availability and performance and strives to provide the highest degree of consistency attainable in the light of these objectives. Measurements from a prototype show that the performance cost of providing high availability in Coda is reasonable. >

[1]  Mahadev Satyanarayanan,et al.  Parallel Communication in a Large Distributed Environment , 1990, IEEE Trans. Computers.

[2]  Keith Marzullo,et al.  Supplying high availability with a standard network file system , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[3]  Bruce J. Walker,et al.  The LOCUS Distributed System Architecture , 1986 .

[4]  Mahadev Satyanarayanan,et al.  Coda: a highly available file system for a distributed workstation environment , 1989, Proceedings of the Second Workshop on Workstation Operating Systems.

[5]  Bruce Walker,et al.  The LOCUS distributed operating system , 1983, SOSP '83.

[6]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.

[7]  Hector Garcia-Molina,et al.  Consistency in a partitioned network: a survey , 1985, CSUR.

[8]  Mahadev Satyanarayanan,et al.  Integrating security in a large distributed system , 1989, TOCS.

[9]  Mahadev Satyanarayanan,et al.  The ITC distributed file system: principles and design , 1985, SOSP '85.

[10]  Mahadev Satyanarayanan,et al.  A SURVEY OF DISTRIBUTED FILE SYSTEMS , 1990 .

[11]  Mahadev Satyanarayanan,et al.  Andrew: a distributed personal computing environment , 1986, CACM.

[12]  Susan B. Davidson,et al.  Optimism and consistency in partitioned distributed database systems , 1984, TODS.

[13]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.

[14]  Alley Stoughton,et al.  Detection of Mutual Inconsistency in Distributed Systems , 1983, IEEE Transactions on Software Engineering.

[15]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.

[16]  Mahadev Satyanarayanan,et al.  Scale and performance in a distributed file system , 1987, SOSP '87.

[17]  David K. Gifford Violet, an Experimental Decentralized System , 1981, Comput. Networks.

[18]  Titus Douglas Mahlon Purdin Enhancing file availability in distributed systems (the saguaro file system) , 1987 .

[19]  Mahadev Satyanarayanan,et al.  The Influence of Scale on Distributed File System Design , 1992, IEEE Trans. Software Eng..

[20]  Mahadev Satyanarayanan,et al.  The ITC distributed file system: principles and design , 1985, SOSP 1985.