Coda (file system)

from Wikipedia, the free encyclopedia

Coda is a file system distributed in a network for stationary and mobile computers. Several computers can simultaneously with the file system to work, the contents usually on multiple servers distributed are to increase the availability of the system. The servers automatically synchronize the content with each other.

Each client has a cache of frequently used files on its local hard drive . If the connection is interrupted, it uses the data from its cache. As soon as a connection to a server can be established again, the data is automatically compared. Manual intervention is only required in the event of a conflict.

Due to the scarcity of resources in mobile systems, only a small section of the entire file system can be kept in the cache.

Coda was created in a research project that was started in 1987 at Carnegie Mellon University in Pittsburgh , USA. Coda is still described by the developers as experimental and is not yet recommended for productive operation with numerous inexperienced users. Compared to the Andrew File System , which is used by large organizations, it is, however, considerably easier to install because the components for encryption and authentication are completely present in the installation packages and are largely configured automatically. This makes it e.g. B. interesting for use with mobile devices such as laptops.

Data consistency

If several clients access the same resources, inconsistencies can arise. Therefore, with other systems, access is often only transferred to one client at a time. However, the mobility of the participants can lead to deadlocks , i.e. locks on a resource by a participant are not lifted because their connection breaks down.

For this reason, Coda does not use exclusion procedures and grants access to all clients. If there is a change, a log (replay log) is written about the change. It is then up to the user to resolve any conflicts that may arise.

Terms

SCM
System control master. A special computer in the network on which the originals of the Coda configuration files are stored.
Volume
When configuring Coda , logical groupings of files are defined, which appear to the user as subdirectories of a special directory called coda . The names are identical for all users in the network.
RPC2
Remote Procedure Call 2 is a special software library with the help of which Coda communicates with other processes in the network via so-called UDP sockets.
RVM
Recoverable Virtual Memory A special memory area on a Coda server
Venus
A program or process on the client that is responsible for communication with the Coda servers and for managing the local cache .

Limits

Coda is still a long way from an ideal file system in which the files you need are available everywhere and at the same time protected from loss and synchronized with one another (even if it is probably the closest compared to other file systems ). The reasons for this include:

  • Write speed: The write speed on Coda file systems is much slower than on only local file systems. (By a factor of 60 slower when deleting, by a factor of 20 slower when creating files.)
  • Insufficient support for very large files: If a Coda client accesses a file, it must be complete. For large files (e.g. DVD images) this means: The client's local cache must be B. be at least 5 GB in size.
  • Insufficient support for permanently open files: files only become "persistent" when they have been closed again, not before, e.g. B. by means of the command flush . This means that changes to a database or log file entries are not retained if the Coda client is not shut down properly (e.g. power failure or empty battery). This contradicts the usual UNIX-like semantics that written data will sooner or later reach the persistent memory (the hard disk ) without further action by the application .

See also

Web links