From serializable to causal transactions for collaborative applications
Michel Raynal, Gérard Thia-Kime, Mustaque Ahamad · 2002
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.