Eventual Consistency: Origin and Support

Eventual consistency is demanded nowadays in geo-replicated services that need to be highly scalable and available. According to the CAP constraints, when network partitions may arise, a distributed service should choose between being strongly consistent or being highly available. Since scalable services should be available, a relaxed consistency (while the network is partitioned) is the preferred choice. Eventual consistency is not a common data-centric consistency model, but only a state convergence condition to be added to a relaxed consistency model. There are still several aspects of eventual consistency that have not been analysed in depth in previous works: 1. which are the oldest replication proposals providing eventual consistency, 2. which replica consistency models provide the best basis for building eventually consistent services, 3. which mechanisms should be considered for implementing an eventually consistent service, and 4. which are the best combinations of those mechanisms for achieving different concrete goals. This paper provides some notes on these important topics.

[1]  Barbara T. Blaustein,et al.  System architecture for partition-tolerant distributed databases , 1985, IEEE Transactions on Computers.

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

[3]  Gio Wiederhold,et al.  Transaction classification to survive a network partition , 1984 .

[4]  Bruce Walker,et al.  The LOCUS distributed operating system , 1983, SOSP '83.

[5]  Constantin Enea,et al.  Verifying eventual consistency of optimistic replication systems , 2014, POPL.

[6]  Mahadev Satyanarayanan,et al.  Coda: A Highly Available File System for a Distributed Workstation Environment , 1990, IEEE Trans. Computers.

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

[8]  Marvin Theimer,et al.  Session guarantees for weakly consistent replicated data , 1994, Proceedings of 3rd International Conference on Parallel and Distributed Information Systems.

[9]  Alan Fekete,et al.  Consistency Models for Replicated Data , 2010, Replication.

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

[11]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[12]  Philip A. Bernstein,et al.  Rethinking eventual consistency , 2013, SIGMOD '13.

[13]  Marko Vukolic,et al.  Consistency in Non-Transactional Distributed Storage Systems , 2015, ACM Comput. Surv..

[14]  Susan B. Davidson,et al.  Optimism and consistency in partitioned distributed database systems , 1984, TODS.

[15]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[16]  Sebastian Burckhardt,et al.  Principles of Eventual Consistency , 2014, Found. Trends Program. Lang..

[17]  Ion Stoica,et al.  Quantifying eventual consistency with PBS , 2014, CACM.

[18]  Yasushi Saito,et al.  Optimistic replication , 2005, CSUR.

[19]  Nancy A. Lynch,et al.  Eventually-serializable data services , 1996, PODC '96.

[20]  Simin Nadjm-Tehrani,et al.  Measuring Availability in Optimistic Partition-Tolerant Systems with Data Constraints , 2007, 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'07).

[21]  Miron Livny,et al.  Distributed Concurrency Control Performance: A Study of Algorithms, Distribution, and Replication , 1988, VLDB.

[22]  Paul V. Mockapetris,et al.  Domain names - implementation and specification , 1987, RFC.

[23]  Marc Shapiro,et al.  Designing a commutative replicated data type , 2007, ArXiv.

[24]  Amin Vahdat,et al.  Design and evaluation of a continuous consistency model for replicated services , 2000, OSDI.

[25]  Eric A. Brewer,et al.  Harvest, yield, and scalable tolerant systems , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[26]  Marc Shapiro,et al.  Convergent and Commutative Replicated Data Types , 2011, Bull. EATCS.

[27]  Hagit Attiya Robust Simulation of Shared Memory: 20 Years After , 2010, Bull. EATCS.

[28]  David Mosberger,et al.  Memory consistency models , 1993, OPSR.

[29]  Irene Greif,et al.  Replicated document management in a group communication system , 1988, CSCW '88.

[30]  Werner Vogels,et al.  Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability. , 2022 .

[31]  Francesc D. Muñoz-Escoí,et al.  A survey on elasticity management in PaaS systems , 2017, Computing.

[32]  Leslie Lamport,et al.  Interprocess Communication , 2020, Practical System Programming with C.

[33]  Robert Thomas,et al.  Maintenance of duplicate databases , 1975, RFC.

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

[35]  Mustaque Ahamad,et al.  Slow memory: weakening consistency to enhance concurrency in distributed shared memories , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[36]  Hendrik Decker,et al.  Revisiting Hot Passive Replication , 2007, The Second International Conference on Availability, Reliability and Security (ARES'07).

[37]  Alley Stoughton,et al.  Detection of Mutual Inconsistency in Distributed Systems , 1983, IEEE Transactions on Software Engineering.

[38]  Francesc D. Muñoz-Escoí,et al.  Replica Divergence in Data-Centric Consistency Models , 2016, 2016 27th International Workshop on Database and Expert Systems Applications (DEXA).

[39]  Idit Keidar,et al.  Group communication specifications: a comprehensive study , 2001, CSUR.

[40]  Nancy A. Lynch,et al.  Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services , 2002, SIGA.

[41]  Indranil Gupta,et al.  Client-Centric Benchmarking of Eventual Consistency for Cloud Storage Systems , 2013, 2014 IEEE 34th International Conference on Distributed Computing Systems.

[42]  Ali Shoker,et al.  Efficient State-Based CRDTs by Delta-Mutation , 2014, NETYS.

[43]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1983, PODS '83.

[44]  Calton Pu,et al.  Replica control in distributed systems: as asynchronous approach , 1991, SIGMOD '91.

[45]  Robert H. Thomas,et al.  An operational system for computer resource sharing , 1975, SOSP.

[46]  Mamoru Maekawa,et al.  A N algorithm for mutual exclusion in decentralized systems , 1985, TOCS.

[47]  Arthur J. Bernstein,et al.  Bounded ignorance in replicated systems , 1991, PODS.

[48]  Fred B. Schneider,et al.  Optimal Primary-Backup Protocols , 1992, WDAG.

[49]  Prashant Malik,et al.  Cassandra: a decentralized structured storage system , 2010, OPSR.

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

[51]  Paul V. Mockapetris,et al.  Domain names: Concepts and facilities , 1983, RFC.

[52]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[53]  Mahadev Satyanarayanan,et al.  Log-based directory resolution in the Coda file system , 1993, [1993] Proceedings of the Second International Conference on Parallel and Distributed Information Systems.

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

[55]  Patrick E. O'Neil,et al.  The Escrow transactional method , 1986, TODS.

[56]  Michael Stonebraker,et al.  Semantics based transaction management techniques for replicated data , 1988, SIGMOD '88.

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

[58]  Geneva G. Belford,et al.  Research in Network Data Management and Resource Sharing: Synchronization and Deadlock , 2018 .

[59]  James R. Goodman,et al.  Cache Consistency and Sequential Consistency , 1991 .

[60]  Scott Shenker,et al.  Epidemic algorithms for replicated database maintenance , 1988, OPSR.