Coda (file system)
   HOME

TheInfoList



OR:

Coda is a
distributed file system A clustered file system is a file system which is shared by being simultaneously mounted on multiple servers. There are several approaches to clustering, most of which do not employ a clustered file system (only direct attached storage for ...
developed as a research project at
Carnegie Mellon University Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania. One of its predecessors was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools; it became the Carnegie Institute of Technology ...
since 1987 under the direction of
Mahadev Satyanarayanan Mahadev "Satya" Satyanarayanan is an Indian experimental computer scientist, an ACM and IEEE fellow, and the Carnegie Group Professor of Computer Science at Carnegie Mellon University (CMU). He is credited with many advances in edge computi ...
. It descended directly from an older version of
Andrew File System The Andrew File System (AFS) is a distributed file system which uses a set of trusted servers to present a homogeneous, location-transparent file name space to all the client workstations. It was developed by Carnegie Mellon University as part of t ...
(AFS-2) and offers many similar features. The
InterMezzo In music, an intermezzo (, , plural form: intermezzi), in the most general sense, is a composition which fits between other musical or dramatic entities, such as acts of a play or movements of a larger musical work. In music history, the term ha ...
file system was inspired by Coda.


Features

Coda has many features that are desirable for network file systems, and several features not found elsewhere. # Disconnected operation for mobile computing. # Is freely available under the GPL # High performance through client-side persistent caching # Server replication # Security model for authentication, encryption and access control # Continued operation during partial network failures in server network # Network bandwidth adaptation # Good scalability # Well defined semantics of sharing, even in the presence of network failure Coda uses a local cache to provide access to server data when the network connection is lost. During normal operation, a user reads and writes to the file system normally, while the client fetches, or "hoards", all of the data the user has listed as important in the event of network disconnection. If the network connection is lost, the Coda client's local cache serves data from this cache and logs all updates. This operating state is called disconnected operation. Upon network reconnection, the client moves to reintegration state; it sends logged updates to the servers. Then it transitions back to normal connected-mode operation. Also different from AFS is Coda's data replication method. AFS uses a pessimistic replication strategy with its files, only allowing one read/write server to receive updates and all other servers acting as read-only replicas. Coda allows all servers to receive updates, allowing for a greater availability of server data in the event of network partitions, a case which AFS cannot handle. These unique features introduce the possibility of semantically diverging copies of the same files or directories, known as "conflicts". Disconnected operation's local updates can potentially clash with other connected users' updates on the same objects, preventing reintegration. Optimistic replication can potentially cause concurrent updates to different servers on the same object, preventing replication. The former case is called a "local/global" conflict, and the latter case a "server/server" conflict. Coda has extensive repair tools, both manual and automated, to handle and repair both types of conflicts.


Supported platforms

Coda has been developed on
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
and support for it appeared in the 2.1 Linux kernel series. It has also been ported to
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
. Subsequently, obsoleted there, an effort is under way to bring it back. Efforts have been made to port Coda to
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
, from the
Windows 95 Windows 95 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of operating systems. The first operating system in the 9x family, it is the successor to Windows 3.1x, and was released to manufacturin ...
/
Windows 98 Windows 98 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. The second operating system in the 9x line, it is the successor to Windows 95, and was released to ...
era,
Windows NT Windows NT is a proprietary graphical operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems sc ...
to
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
, by means of open-source projects like the DJGCC DOS C Compiler and
Cygwin Cygwin ( ) is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed. The Cygwin in ...
.


References


External links


Coda website at Carnegie Mellon University
*Coda: a highly available file system for a distributed workstation network, Mahadev Satyanarayanan James J. Kistler, Puneet Kumar, IEEE Transactions on Computers, Vol. 39, No. 4, April 1990
The Coda Distributed Filesystem for Linux
, Bill von Hagen, October 7, 2002.

Peter J. Braam, School of Computer Science, {{DEFAULTSORT:Coda (File System) Network file systems Distributed file systems Distributed file systems supported by the Linux kernel Carnegie Mellon University software