An Algorithm for Replicated Objects with Efficient Reads

The problem. We consider the problem of implementing a consistent replicated object in a partially synchronous message passing distributed system susceptible to process and communication failures. The object is a generic shared resource, such as a data structure, a file, or a lock. The processes implementing the replicated object access it by applying operations to it at unpredictable times and potentially concurrently.1 The object should be linearizable: it should behave as if each operation applied to it takes effect at a distinct instant in time during the interval between its invocation and its response. The main reason for replicating an object is fault tolerance; if a copy of the object becomes inaccessible, the object can still be accessed through the other copies. Another reason for replicating an object is performance; a process that requires the object can access its local copy. The benefit of accessing a local copy, however, must be weighed against the cost of keeping the copies consistent.

[1]  Sam Toueg,et al.  Unreliable failure detectors for reliable distributed systems , 1996, JACM.

[2]  Hagit Attiya,et al.  Sequential consistency versus linearizability , 1994, TOCS.

[3]  Sam Toueg,et al.  A robust and lightweight stable leader election service for dynamic systems , 2008, 2008 IEEE International Conference on Dependable Systems and Networks With FTCS and DCC (DSN).

[4]  Sam Toueg,et al.  The weakest failure detector for solving consensus , 1992, PODC '92.

[5]  Marcos K. Aguilera,et al.  On implementing omega in systems with weak reliability and synchrony assumptions , 2008, Distributed Computing.

[6]  Barbara Liskov,et al.  Viewstamped Replication Revisited , 2012 .

[7]  Leslie Lamport,et al.  The part-time parliament , 1998, TOCS.

[8]  Nancy A. Lynch,et al.  An Upper and Lower Bound for Clock Synchronization , 1984, Inf. Control..

[9]  David G. Andersen,et al.  Paxos Quorum Leases: Fast Reads Without Sacrificing Writes , 2014, SoCC.

[10]  Jennifer L. Welch,et al.  Improved Time Bounds for Linearizable Implementations of Abstract Data Types , 2014, 2014 IEEE 28th International Parallel and Distributed Processing Symposium.

[11]  John K. Ousterhout,et al.  In Search of an Understandable Consensus Algorithm , 2014, USENIX ATC.

[12]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[13]  Robert Griesemer,et al.  Paxos made live: an engineering perspective , 2007, PODC '07.

[14]  Christopher Frost,et al.  Spanner: Google's Globally-Distributed Database , 2012, OSDI.

[15]  Yawei Li,et al.  Megastore: Providing Scalable, Highly Available Storage for Interactive Services , 2011, CIDR.

[16]  Brett D. Fleisch,et al.  The Chubby lock service for loosely-coupled distributed systems , 2006, OSDI '06.

[17]  Dan Roth,et al.  Linearizable Read/Write Objects , 1999, Theor. Comput. Sci..

[18]  Barbara Liskov,et al.  Viewstamped Replication: A New Primary Copy Method to Support Highly-Available Distributed Systems , 1999, PODC '88.

[19]  Nancy A. Lynch,et al.  Consensus in the presence of partial synchrony , 1988, JACM.