JEPSEN

Consistency

We present a variety of consistency models and database phenomena with approachable explanations and links to the literature. These models are often defined in terms of dependencies between operations. We aim to make consistency properties accessible for industry practitioners, academics, and enthusiasts.

Models

A consistency model is a safety property which declares what a system can do. Formally, a consistency model defines a set of histories that a system can legally execute. For instance, the model known as Serializability guarantees that every legal history must be equivalent to a totally ordered execution.

Phenomena

Consistency models are often defined in terms of proscribed phenomena: specific patterns of operations. For example, G1a (Aborted Read) occurs when a transaction observes a write performed by a different, aborted transaction.

Dependencies

Consistency models and phenomena are often defined in terms of dependencies between different operations. For example, we say that transaction T2 write-read depends on transaction T1 if T2 reads some value that T1 wrote. These dependencies form a graph. Preventing specific cycles in that graph gives rise to different consistency models.