From serializable to causal transactions for collaborative applications

Services in decentralized distributed systems can be implemented using shared distributed objects. When these objects are accessed concurrently, serializability (the traditional consistency criterion) can be used to define their execution behaviour. However, this consistency criterion has a major drawback because it imposes strong synchronization constraints on the execution of applications which cannot be met efficiently in decentralized systems. In this paper, we examine weaker consistency criteria for computations in which accesses to shared objects are grouped to form transactions. The guarantees provided by transactions (e.g. concurrency and failure atomicity) make them attractive when computations manipulate the state of long-lived objects. We explore two new criteria: causal consistency and causal serializability. These criteria turn out to be sufficient for a class of applications (e.g. collaborative applications) and their implementation results in lesser synchronization and hence improved autonomy, availability and performance. These criteria are formally defined and protocols implementing them are presented.

[1]  Frank Bernhard Schmuck,et al.  The Use of Efficient Broadcast Protocols in Asynchronous Distributed Systems , 1988 .

[2]  Sam Toueg,et al.  Fault-tolerant broadcasts and related problems , 1993 .

[3]  André Schiper,et al.  Lightweight causal and atomic group multicast , 1991, TOCS.

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

[5]  Jayadev Misra Axioms for memory access in asynchronous hardware systems , 1986, TOPL.

[6]  Hector Garcia-Molina,et al.  Read-only transactions in a distributed database , 1982, TODS.

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

[8]  A. Elmagarmid Database transaction models for advanced applications , 1992 .

[9]  Yehuda Afek,et al.  Lazy caching , 1993, TOPL.

[10]  Michel Raynal A Distributed Solution to the k-out of-M Resources Allocation Problem , 1991, ICCI.

[11]  Arthur J. Bernstein,et al.  Efficient solutions to the replicated log and dictionary problems , 1984, PODC '84.

[12]  D. Manivannan,et al.  A Decentralized Token Generation Scheme for Token-Based Mutual Exclusion Algorithms , 1996 .

[13]  André Schiper,et al.  From Causal Consistency to Sequential Consistency in Shared Memory Systems , 1995, FSTTCS.

[14]  Qi Lu,et al.  Isolation-only transactions for mobile computing , 1994, OPSR.

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

[16]  Sam Toueg,et al.  Unreliable Failure Detectors for Asynchronous Systems , 1991 .

[17]  Divyakant Agrawal,et al.  A Token-Based Fault-Tolerant Distributed Mutual Exclusion Algorithm , 1995, J. Parallel Distributed Comput..

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

[19]  Gil Neiger,et al.  Causal Memory , 1991, WDAG.

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

[21]  André Schiper,et al.  The Causal Ordering Abstraction and a Simple Way to Implement it , 1991, Inf. Process. Lett..

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

[23]  Michel Raynal,et al.  Sequential Consistency in Distributed Systems , 1994, Dagstuhl Seminar on Distributed Systems.

[24]  Hector Garcia-Molina,et al.  How to assign votes in a distributed system , 1985, JACM.

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

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