This Article 
 Bibliographic References 
 Add to: 
Coda: A Highly Available File System for a Distributed Workstation Environment
April 1990 (vol. 39 no. 4)
pp. 447-459

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] K.P. Birman and T.A. Joseph, "Reliable Communication in the Presence of Failures,"ACM Trans. Computer Systems, Vol. 5, No. 1, Feb. 1987, pp. 47-76.
[2] S. Davidson, "Optimization and consistency in partitioned distributed database systems,"ACM Trans. Database Syst., vol. 9, no. 3, pp. 456-481, 1984.
[3] S.B. Davidson, H. Garcia-Molina, and D. Skeen, "Consistency in a Partitioned Network,"ACM Computing Surveys, Vol. 17, No. 3, Sept. 1985, pp. 341-370.
[4] D. K. Gifford, "Violet, An experimental decentralized system," Tech. Rep. CSL-79-12, Xerox Corp., Palo Alto Research Center, Sept. 1979.
[5] D. K. Gifford, "Weighted voting for replicated data," Tech. Rep. CSL-79-14, Xerox Corp., Palo Alto Research Center, Sept. 1979.
[6] R. G. Guy, II, "A replicated filesystem design for a distributed Unix system," Master Thesis, Dep. Comput. Sci., Univ. of California, Los Angeles, CA, 1987.
[7] J. H. Howardet al., "Scale and performance in a distributed file system,"ACM Trans. Comput. Syst., vol. 6, no. 1, Feb. 1988.
[8] K. Marzullo and F. Schmuck, "Supplying high availability with a standard network file system," inProc. 8th Int. Conf. Distributed Comput. Syst., San Jose, CA, June, 1988.
[9] J. H. Morriset al., "Andrew: a distributed personal computing environment,"Commun. ACM, vol. 29, no. 3, Mar. 1986.
[10] D. S. Parker, Jr., G. J. Popek, G. Rudisin, A. Stoughton, B. J. Walker, E. Walton, J. M. Chow, D. Edwards, S. Kiser, and C. Kline, "Detection of mutual inconsistency in distributed systems,"IEEE Trans. Software Eng., vol. SE-9, no. 3, May 1983.
[11] G.J. Popek and B.J. Walker,The Locus Distributed System Architecture, MIT Press, Cambridge, Mass., 1985.
[12] T. Purdin, "Enhancing file availability in distributed systems (The Saguaro file system)," Ph.D. dissertation, University of Arizona, 1987.
[13] M. Satyanarayanan, "Integrating security in a large distributed system,"ACM Trans. Comput. Syst., vol. 7, no. 3, Aug. 1989.
[14] M. Satyanarayanan and E. H. Siegel, "Parallel communication in a large distributed environment,"IEEE Trans. Comput., vol. 39, pp. 328-348, Mar. 1990.
[15] M. Satyanarayan,et al., The ITC distributed file system: Principles and design," inProc. 10th Symp. Operating System Principles, Orcas Island, WA, Dec. 1985, pp. 35-50.
[16] M. Satyanarayanan, "A survey of distributed file systems," inAnnu. Rev. Comput. Sci., J. F. Traub, B. Grosz, B. Lampson, N. J. Nilsson, Eds., Annual Reviews, Inc., 1989. Also available as Tech. Rep. CMU-CS-89-116, Dep. Comput. Sci., Carnegie-Mellon Univ., Feb. 1989.
[17] A. Z. Spector and M. L. Kazar, "Wide area file service and the AFS experimental system,"Unix Rev., vol. 7, no. 3, Mar. 1989.
[18] A. Z. Spector and K. R. Swedlow, Ed.,The Guide to the Camelot Distributed Transaction Facility: Release 1, 0.98(51) edition, Carnegie Mellon Univ., 1988.
[19] B. Walker et al., "The Locus Distributed Operating System,"Proc. Ninth ACM Symp. Operating Systems Principles, Oct. 1983, pp. 49-70.

Index Terms:
Coda; highly available file system; distributed workstation environment; Unix workstations; server replication; disconnected operation; caching site; replication site; prototype; distributed processing; file organisation; workstations.
M. Satyanarayanan, J.J. Kistler, P. Kumar, M.E. Okasaki, E.H. Siegel, D.C. Steere, "Coda: A Highly Available File System for a Distributed Workstation Environment," IEEE Transactions on Computers, vol. 39, no. 4, pp. 447-459, April 1990, doi:10.1109/12.54838
Usage of this product signifies your acceptance of the Terms of Use.