Niobe
- 25 February 2008
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Storage
- Vol. 3 (4) , 1-43
- https://doi.org/10.1145/1326542.1326543
Abstract
The task of consistently and reliably replicating data is fundamental in distributed systems, and numerous existing protocols are able to achieve such replication efficiently. When called on to build a large-scale enterprise storage system with built-in replication, we were therefore surprised to discover that no existing protocols met our requirements. As a result, we designed and deployed a new replication protocol called Niobe . Niobe is in the primary-backup family of protocols, and shares many similarities with other protocols in this family. But we believe Niobe is significantly more practical for large-scale enterprise storage than previously published protocols. In particular, Niobe is simple, flexible, has rigorously proven yet simply stated consistency guarantees, and exhibits excellent performance. Niobe has been deployed as the backend for a commercial Internet service; its consistency properties have been proved formally from first principles, and further verified using the TLA + specification language. We describe the protocol itself, the system built to deploy it, and some of our experiences in doing so.Keywords
This publication has 15 references indexed in Scilit:
- Average probe complexity in quorum systemsJournal of Computer and System Sciences, 2006
- FABACM SIGARCH Computer Architecture News, 2004
- The Google file systemPublished by Association for Computing Machinery (ACM) ,2003
- Web search for a planet: the google cluster architectureIEEE Micro, 2003
- The part-time parliamentACM Transactions on Computer Systems, 1998
- Flexible update propagation for weakly consistent replicationPublished by Association for Computing Machinery (ACM) ,1997
- Disconnected operation in the Coda File SystemACM Transactions on Computer Systems, 1992
- Linearizability: a correctness condition for concurrent objectsACM Transactions on Programming Languages and Systems, 1990
- Leases: an efficient fault-tolerant mechanism for distributed file cache consistencyPublished by Association for Computing Machinery (ACM) ,1989
- The serializability of concurrent database updatesJournal of the ACM, 1979