Coda
Coda
What is Coda?
Coda is a highly-available distributed file system that supports extended periods of client disconnection.
Coda's History
Based on the Andrew File System (AFS), specifically AFS2 Developed by Mahadev Satyanarayanan, a principle architect of AFS First implemented on Mach 2.6 one of the earliest microkernel OS Ported to Linux, NetBSD, FreeBSD, others... Development is ongoing
The internal organization of a virtue work station -Designed to allow access to files even if server is unavailable. -Uses VFS .
COMMUNICATION IN CODA
Start a new thread for each request, server periodically informs client it is still working on the request Useful for video streaming [where RPCs are less useful]
FEATURES
1.High performance through client side persistent caching
2.Server replication
3.Works during disconnected operation 4.Security model for authentication, encryption and access control 5.Continued operation during partial network failures in server network
6.Good scalability
Implementation
S C C
S C
S
C
C
C
Disconnected Operation
Naming
Files are grouped into volumes [partial subtree in the directory structure]
Volume is the basic unit of mounting Namespace: /afs/filesrv.cs.umass.edu [same namespace on all client; different from NFS] Name lookup can cross mount points: support for detecting crossing and automounts
Client Caching
Server Replication
VSG
Volume Storage Group (VSG) - all the servers in a Coda file system
AVSG
Available Volume Storage Group (AVSG) all the servers accessible to an arbitrary client; that clients universe of servers
Disconnected Operation
HOARDING
Occurs during normal, connected operation Replica-like cache behavior Gathers data from servers in anticipation of future disconnected operation Relies on its Hoard Database (HDB) Most recently-used files
User-specified files
Probes its preferred server in AVSG every t seconds to check AVSG size.
Hoarded files are sticky in the cache
EMULATION
REINTEGRATION
A transitory state from disconnection back to connected operation Propagates changes made during emulation Updates cache based on changes in AVSG Updates are made using a replay algorithm that reenacts all changes made while disconnected to each object Testing indicates reintegration typically lasts less than 1% of the duration of emulation
LIMITATIONS
Limited scope: some applications simply resist hoarding. Not supporting to vista and windows 7 yet. Fault tolerant because the goal of disconnected transparent operation cannot be made failure-free.
CONCLUSIONS
Coda is still under development, though the focus has shifted from research to creating a robust product for commercial use. Updates to the network computer would automatically be made when as they become available on servers, and for the most part the computer would operate without network traffic, even after restarts. The rough edges, which inevitably come with research systems, are slowly being smoothed out.
REFERENCES
1. Braam PJ. The Coda Distributed File System [Internet]. Carnegie Mellon University; [updated 2008 Mar 25; cited 2011 May 22]. Available from http://www.coda.cs.cmu.edu/ljpaper/lj.html. 2. Coulouris G, Dollimore J, Kindberg T. Distributed Systems: Concepts and Design, 4th ed. Harlow, England: Addison-Westley; 2005. pp. 631-641.
3. Kistler JJ, Satyanarayanan M. Disconnected Operation in the Coda File System. In: Milojicic D, Douglis F, Wheeler R, editors. Mobility: Processes, Computers, and Agents. ACM Press; 1999. pp. 293-305.
4. Sataynarayanan M, Kistler JJ, Puneet K, Okasaki M, Siegel E, Steere D. Coda: A Highly Available File System . Available from http://www.cs.cmu.edu/afs/cs/project/coda-www/ResearchWebPages/docdir/lj98.pdf 5. Tanenbaum AS, Van Steen M. Distributed Systems: Principles and Paradigms, 2nd ed. Upper Saddle River (NJ): Prentice Hall; 2007. pp. 518-526.
THANK YOU