Causal Consistency

The causal consistency model represents a weakening of sequential consistency in that it makes a distinction between events that are potentially causally related and those that are not.

Consider a memory example. Suppose that process P1 writes a variable X. Then P2 reads X and writes Y. Here the reading of X and the writing of Y are potentially causally related because the computation of Y may have depended on the value of X read by P2 ( i.e., the value written by P1 ).

On the other hand, if two processes spontaneously and simultaneously write two variables, these are not causally related. When there is a read followed later by a write, the two events are potentially causally related. Similarly, a read is causally related to the write that provided the data the read got. Operations that are not causally related are said to be concurrent.

For a memory to be considered causally consistent, it is necessary that the memory obey the following condition:

Writes that are potentially causally related must be seen by all processes in the same order. Concurrent writes may be seen in a different order on different machines.


                    
DSM Home   Subway  Consistency   Strict     PRAM      
  Page       Map     Models   Consistency