Eventually-serializable data services

We present a new specification for distributed data services that trade-off immediate consistency guarantees for improved system availability and efficiency, while ensuring the long-term consistency of the data. An eventually-serializable data service maintains the operations requested in a partial order that gravitates over time towards a total order. It provides clear and unambiguous guarantees about the immediate and long-term behavior of the system. To demonstrate its utility, we present an algorithm, based on one of Ladin, Liskov, Shrira, and Ghemawat [12], that implements this specification. Our algorithm provides the interface of the abstract service, and generalizes their algorithm by allowing general operations and greater flexibility in specifying consistency requirements. We also describe how to use this specification as a building block for applications such as directory services.

[1]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[2]  Robert H. Thomas,et al.  A Majority consensus approach to concurrency control for multiple copy databases , 1979, ACM Trans. Database Syst..

[3]  Nancy A. Lynch,et al.  Forward and backward simulations, part II: timing-based systems , 1993 .

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

[5]  Michael Stonebraker,et al.  Concurrency Control and Consistency of Multiple Copies of Data in Distributed Ingres , 1979, IEEE Transactions on Software Engineering.

[6]  Alexander A. Shvartsman,et al.  Implementing and evaluating an eventually-serializable data service , 1998, PODC '98.

[7]  Liuba Shrira,et al.  Providing high availability using lazy replication , 1992, TOCS.

[8]  Liuba Shrira,et al.  Lazy replication: exploiting the semantics of distributed services (extended abstract) , 1990, OPSR.

[9]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[10]  Roger M. Needham,et al.  Grapevine: an exercise in distributed computing , 1982, CACM.

[11]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[12]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.

[13]  Oleg M. Cheiner Implementation and evaluation of an eventually-serializable data service , 1997 .

[14]  F. Vaandrager Forward and Backward Simulations Part I : Untimed Systems , 1993 .

[15]  J. D. Day,et al.  A principle for resilient sharing of distributed resources , 1976, ICSE '76.

[16]  Nancy A. Lynch,et al.  Forward and Backward Simulations: I. Untimed Systems , 1995, Inf. Comput..

[17]  Michael J. Fischer,et al.  Sacrificing serializability to attain high availability of data in an unreliable network , 1982, PODS.

[18]  M. Herlihy A quorum-consensus replication method for abstract data types , 1986, TOCS.

[19]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[20]  Butler W. Lampson,et al.  Designing a global name service , 1986, PODC '86.

[21]  Jack J. Dongarra,et al.  A message passing standard for MPP and workstations , 1996, CACM.