The Farsite project
- 1 April 2007
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGOPS Operating Systems Review
- Vol. 41 (2), 17-26
- https://doi.org/10.1145/1243418.1243422
Abstract
The Farsite file system is a storage service that runs on the desktop computers of a large organization and provides the semantics of a central NTFS file server. The motivation behind the Farsite project was to harness the unused storage and network resources of desktop computers to provide a service that is reliable, available, and secure despite the fact that it runs on machines that are unreliable, often unavailable, and of limited security. A main premise of the project has been that building a scalable system requires more than scalable algorithms: To be scalable in a practical sense, a distributed system targeting 10 5 nodes must tolerate a significant (and never-zero) rate of machine failure, a small number of malicious participants, and a substantial number of opportunistic participants. It also must automatically adapt to the arrival and departure of machines and changes in machine availability, and it must be able to autonomically repartition its data and metadata as necessary to balance load and alleviate hotspots. We describe the history of the project, including its multiple versions of major system components, the unique programming style and software-engineering environment we created to facilitate development, our distributed debugging framework, and our experiences with formal system specification. We also report on the lessons we learned during this development.Keywords
This publication has 6 references indexed in Scilit:
- The SMART way to migrate replicated stateful servicesPublished by Association for Computing Machinery (ACM) ,2006
- Optimizing file availability in a secure serverless distributed file systemPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Feasibility of a serverless distributed file system deployed on an existing set of desktop PCsPublished by Association for Computing Machinery (ACM) ,2000
- The part-time parliamentACM Transactions on Computer Systems, 1998
- Disconnected operation in the Coda File SystemACM Transactions on Computer Systems, 1992
- Process structuring, synchronization, and recovery using atomic actionsACM SIGPLAN Notices, 1977