Coda (file system)

From Wikipedia, the free encyclopedia

Coda
Developer Carnegie Mellon University
Full name
Introduced 1987 ()
Partition identifier
Structures
Directory contents
File allocation
Bad blocks
Limits
Max file size
Max number of files
Max filename size
Max volume size
Allowed characters in filenames
Features
Dates recorded
Date range
Forks
Attributes
File system permissions
Transparent compression
Transparent encryption
Supported operating systems {{{OS}}}

Coda is a Distributed File System developed as a research project at Carnegie Mellon University since 1987 under the direction of M. Satyanarayanan. It descended directly from an older version of AFS (AFS-2) and offers many similar features. The InterMezzo file system was inspired by Coda. Coda is still under development, though the focus has shifted from research to creating a robust product for commercial use.

[edit] Features

Coda is a distributed filesystem with its origin in AFS2. It has many features that are very desirable for network filesystems. Currently, Coda has several features not found elsewhere.

  1. disconnected operation for mobile computing
  2. is freely available under a liberal license
  3. high performance through client side persistent caching
  4. server replication
  5. security model for authentication, encryption and access control
  6. continued operation during partial network failures in server network
  7. network bandwidth adaptation
  8. good scalability
  9. well defined semantics of sharing, even in the presence of network failures

Coda takes advantage of a local cache to provide access to server data in the presence of network failures. During normal operation, a user reads and writes to the file system normally, while the Coda 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 referred to as disconnected operation. Upon network reconnection, the Coda client transitions from disconnected operation to a transient "reintegration" state where logged updates are sent back to the servers. When all updates are reintegrated, the client transitions back to normal connected-mode operation.

Another feature that Coda differs from AFS is in that of its data replication method. AFS utilizes 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.

[edit] External links

In other languages