Abstract

The Cooperative File System (CFS) is a new peer-to-peer read-only storage system that provides provable guarantees for the efficiency, robustness, and load-balance of file storage and retrieval. CFS does this with a completely decentralized architecture that can scale to large systems. CFS servers provide a distributed hash table (DHash) for block storage. CFS clients interpret DHash blocks as a file system. DHash distributes and caches blocks at a fine granularity to achieve load balance, uses replication for robustness, and decreases latency with server selection. DHash finds blocks using the Chord location protocol, which operates in time logarithmic in the number of servers.CFS is implemented using the SFS file system toolkit and runs on Linux, OpenBSD, and FreeBSD. Experience on a globally deployed prototype shows that CFS delivers data to clients as fast as FTP. Controlled tests show that CFS is scalable: with 4,096 servers, looking up a block of data involves contacting only seven servers. The tests also demonstrate nearly perfect robustness and unimpaired performance even when as many as half the servers fail.

Keywords

Computer scienceServerScalabilityConsistent hashingOperating systemDistributed hash tableFile serverRobustness (evolution)Latency (audio)Hash tableLoad balancing (electrical power)Distributed computingDistributed data storeComputer networkHash functionComputer security

Affiliated Institutions

Related Publications

Chord

A fundamental problem that confronts peer-to-peer applications is to efficiently locate the node that stores a particular data item. This paper presents Chord, a distributed loo...

2001 9645 citations

Publication Info

Year
2001
Type
article
Pages
202-215
Citations
1434
Access
Closed

External Links

Social Impact

Altmetric

Social media, news, blog, policy document mentions

Citation Metrics

1434
OpenAlex

Cite This

Frank Dabek, M. Frans Kaashoek, David R. Karger et al. (2001). Wide-area cooperative storage with CFS. , 202-215. https://doi.org/10.1145/502034.502054

Identifiers

DOI
10.1145/502034.502054