Causal consistency is one of the major memory consistency models. In concurrent programming, where concurrent processes are accessing a shared memory, a consistency model restricts which accesses are legal. This is useful for defining correct data structures in distributed shared memory or distributed transactions.
Causal Consistency is “Available under Partition”, meaning that a process can read and write the memory (memory is Available) even while there is no functioning network connection (network is Partitioned) between processes; it is an asynchronous model. Contrast to strong consistency models, such as sequential consistency or linearizability, which cannot be both safe and live under partition, and are slow to respond because they require synchronisation.
Causal consistency was proposed in 1990s [1] as a weaker consistency model for shared memory models. Causal consistency is closely related to the concept of Causal Broadcast in communication protocols.[2] In these models, a distributed execution is represented as a partial order, based on Lamport's happened-before concept of potential causality. [3]
Causal consistency is a useful consistency model because it matches programmers' intuitions about time, is more available than strong consistency models, yet provides more useful guarantees than eventual consistency. For instance, in distributed databases, causal consistency supports the ordering of operations, in contrast to eventual consistency.[4] Also, causal consistency helps with the development of abstract data types such as queues or counters. [5]
Since time and ordering are so fundamental to our intuition, it is hard
to reason about a system that does not enforce causal consistency.
However, many distributed databases lack this guarantee, even ones that
provide serialisability.[6]
Spanner does guarantee causal consistency, but it also forces strong consistency, thus eschewing availability under partition.
More available databases that ensure causal consistency include MongoDB
and AntidoteDB.
^Ahamad, Mustaque; Neiger, Gil; Burns, James E.; Kohli, Prince; Hutto, Phillip W. (March 1995), "Causal memory: definitions, implementation, and programming", Distributed Computing, 9 (1): 37–49, doi:10.1007/bf01784241, hdl:1853/6781, S2CID 6435056
^Birman, Kenneth P.; Joseph, Thomas A. (January 1987), "Reliable communication in the presence of failures", ACM Transactions on Computer Systems, 5 (1): 47–76, doi:10.1145/7351.7478, hdl:1813/6534, S2CID 11224827
^Lamport, Leslie (1978), "Time, clocks, and the ordering of events in a distributed system", Communications of the ACM, 21 (7): 558–565, doi:10.1145/359545.359563, S2CID 215822405
^Elbushra, Mawahib Musa; Lindström, Jan (2015), "Causal consistent databases", Open Journal of Databases, 2 (1): 17–35
^Perrin, Matthieu; Mostéfaoui, Achour; Jard, Claude (2016), "Causal consistency: beyond memory", in Asenjo, Rafael; Harris, Tim (eds.), Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2016, Barcelona, Spain, March 12-16, 2016, pp. 26:1–26:12, arXiv:1603.04199, doi:10.1145/2851141.2851170, S2CID 3010991
^Daudjee, Khuzaima; Salem, Kenneth (2004), "Lazy database replication with ordering guarantees", in Özsoyoglu, Z. Meral; Zdonik, Stanley B. (eds.), Proceedings of the 20th International Conference on Data Engineering, ICDE 2004, 30 March – 2 April 2004, Boston, MA, USA, IEEE Computer Society, pp. 424–435, CiteSeerX 10.1.1.564.1562, doi:10.1109/ICDE.2004.1320016, S2CID 1850131
and 22 Related for: Causal consistency information
Causalconsistency is one of the major memory consistency models. In concurrent programming, where concurrent processes are accessing a shared memory...
model. Some other consistency models are as follows: Causal+ consistency Cross-Client Monotonicity Delta consistency Fork consistency One-copy serializability...
association such as strength, consistency, specificity, and temporality be considered in attempting to distinguish causal from noncausal associations in...
interpretation accepts the linear causal sets of sequential events with adequate consistency yet also suggests constant forking of causal chains creating "multiple...
than the PRAM Consistency model because it requires Cache Coherence. Another difference between CausalConsistency and Processor Consistency is that Processor...
sequence of events for PRAM consistency. The above sequence is not valid for Causalconsistency because W(x)1 and W(x)2 are causal, so different processes...
Novikov's views are not widely accepted. Visser views causal loops and Novikov's self-consistency principle as an ad hoc solution, and supposes that there...
not mean that there is not a causal effect, though the larger the association, the more likely that it is causal. Consistency of Data: Consistent findings...
To quote Archer in this regard: "logical consistency is a property of the world of ideas; causalconsistency is a property of people. The main proposition...
(1967, 1971, 1972, 1973) is an attribution theory in which people make causal inferences to explain why other people and ourselves behave in a certain...
not mean that there is not a causal effect, though the larger the association, the more likely that it is causal. Consistency (reproducibility): Consistent...
through an event horizon, which might prevent an observer from detecting the causal violation (also known as chronology violation). In a 1992 paper, Hawking...
same to different viewers). This essentially implies working under causalconsistency instead of a stronger model. Relativistic programming provides advantages...
such as vector clocks. Using only a simple Lamport clock, only a partial causal ordering can be inferred from the clock. However, via the contrapositive...
directed acyclic graph (DAG). While it is one of several forms of causal notation, causal networks are special cases of Bayesian networks. Bayesian networks...
systems", two consistency properties are required for collaborative editing systems: Causality preservation: ensures the execution order of causally dependent...
observed). Additional causal connections link those latent variables to observed variables whose values appear in a data set. The causal connections are represented...
Integrity can stand in opposition to hypocrisy. It regards internal consistency as a virtue, and suggests that people who hold apparently conflicting...
analysis was designed for multi-dimensional, non-quantifiable problems where causal modeling and simulation do not function well or at all. Fritz Zwicky developed...
Dynamic causal modeling (DCM) is a framework for specifying models, fitting them to data and comparing their evidence using Bayesian model comparison....
E[Yi1 – Yi0], which is exactly the causal treatment effect (TE) one tries to recover. Because of the ‘consistency rule’, the potential outcomes are the...
lines that intersect themselves; some point in the causal future of the world line is also in its causal past, a situation that can be described as time...