Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

You want your friends and colleagues to be consistent in the way they interact with you. Consistency is also a key concern when choosing a database. Consistency models define the rules by which distributed systems present data updates to clients.
They answer the question:
When I write something, when and how will others see it?
From the 1970s to today’s cloud databases, consistency trade-offs have shaped system design. This post briefly talks to common consistency patterns and why you should care.

Operations appear to occur atomically and in real time. If one operation completes before another begins, all clients observe them in that order.
Origin: Defined by Herlihy & Wing (1990) in the context of concurrent objects.
https://cs.brown.edu/~mph/HerlihyW90/p463-herlihy.pdf
Examples:

All operations appear in the same total order, consistent with the program order of each process, but without a real-time constraint.
Origin: Introduced by Leslie Lamport (1979) in How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs.
Difference from Linearizability: Sequential consistency allows reordering if it doesn’t violate per-process order, whilst linearizability does not.
How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
Examples:

If operation A causally affects B (e.g., B reads data from A), then all processes see A before B. Independent operations can be seen in different orders.
Origin: Ahamad et al. (1993) in Causal Memory.
Examples:

Writes from a single process are observed in order, but no ordering guarantees across processes.
Origin: PRAM (Pipelined Random Access Machine) model in the 1980s, adapted for memory consistency.
ftp://ftp.cs.princeton.edu/techreports/1988/180.pdf
Examples:
Once you’ve read a value, you will never see an older value in later reads.
Examples:
Definition: Writes from a single process are applied in the order they were issued.
Examples:

After writing data, a client will always read that same value (or a newer one).
Origin: Popularized in the mid-1990s in session-based web systems.
Examples:
A composite guarantee – typically read-your-writes + monotonic reads, but only within a session.
Examples:

Reads are guaranteed to lag writes by at most a fixed number of versions or time interval.
Origin: This paper introduces the PBS model, which quantifies how often and by how much reads may lag behind writes in quorum-replicated systems—providing both version-based (k-staleness) and time-based (t-visibility) bounds.
https://arxiv.org/pdf/1204.6082
Examples:

In the absence of new updates, all replicas converge to the same value, but no guarantees about how long it takes.
Origin: Term formalized by Werner Vogels (Amazon CTO) in the mid-2000s, though used implicitly in systems like DNS since the 1980s.
https://www.allthingsdistributed.com/2007/12/eventually_consistent.html
Examples:
Here is a non-exhaustive history of some key date in the consistency options.
You must be logged in to post a comment.