Study smarter with Fiveable
Get study guides, practice questions, and cheatsheets for all your subjects. Join 500,000+ students with a 96% pass rate.
Consistency models are the backbone of how distributed systems maintain reliable data across multiple nodes, processes, and geographic regions. When you're studying parallel and distributed computing, you're being tested on your ability to understand the tradeoffs between data accuracy, system availability, and performance. These models appear constantly in exam questions about distributed databases, cloud computing architectures, and concurrent programming—and understanding them means knowing when to sacrifice strict guarantees for speed, or when absolute correctness is non-negotiable.
Don't just memorize definitions—know what problem each model solves and what tradeoffs it accepts. Exam questions will ask you to recommend consistency models for specific scenarios, compare the ordering guarantees of different models, or explain why a system like DNS uses eventual consistency while a banking system requires something stronger. Master the why behind each model, and you'll be ready for anything.
These models provide the strictest guarantees about how operations appear across the system. They sacrifice performance for correctness, requiring coordination mechanisms that can introduce latency but ensure all processes see the same global state.
Compare: Linearizability vs. Sequential Consistency—both guarantee a global ordering, but linearizability requires operations to respect real-time ordering while sequential consistency only requires a consistent sequence. If an FRQ asks about "strongest consistency guarantees," linearizability is your answer.
These models relax the requirement that all processes see the same global order. They permit different views across processes while maintaining specific guarantees, enabling better performance in distributed environments.
Compare: Causal Consistency vs. PRAM—both allow different processes to see different orderings, but causal consistency tracks logical dependencies across processes while PRAM only guarantees ordering within a single process's writes. Causal is strictly stronger.
These models focus on what an individual client or session experiences rather than global system state. They're designed for user-facing applications where perceived consistency matters more than absolute global ordering.
Compare: Monotonic Read vs. Monotonic Write—both provide "monotonic" guarantees but in opposite directions. Monotonic read ensures you never see older data after seeing newer data; monotonic write ensures your writes are applied in order. An FRQ might ask you to identify which guarantee a shopping cart system needs (hint: both).
When system availability and partition tolerance matter more than immediate consistency, these models accept temporary inconsistencies in exchange for better performance and fault tolerance.
Compare: Strong Consistency vs. Eventual Consistency—these represent opposite ends of the consistency spectrum. Strong consistency guarantees immediate visibility but requires coordination; eventual consistency maximizes availability but accepts temporary divergence. The CAP theorem forces distributed systems to choose between them during network partitions.
| Concept | Best Examples |
|---|---|
| Strictest global ordering | Linearizability, Strong Consistency |
| Global order without real-time | Sequential Consistency |
| Partial ordering by causality | Causal Consistency, PRAM |
| Per-client guarantees | Read-Your-Writes, Session Consistency |
| Monotonic progress | Monotonic Read, Monotonic Write |
| Maximum availability | Eventual Consistency |
| Banking/financial systems | Linearizability, Strong Consistency |
| Social media/DNS | Eventual Consistency |
Which two consistency models both guarantee a global ordering of operations, and what distinguishes them from each other?
A user posts a comment on a social media platform but doesn't see it appear when they refresh. Which client-centric consistency guarantee has been violated?
Compare and contrast Causal Consistency and PRAM Consistency. Under what circumstances would PRAM allow different orderings that Causal Consistency would not?
You're designing a distributed banking system that processes transfers between accounts. Which consistency model would you recommend, and why would eventual consistency be inappropriate?
Explain how Monotonic Read Consistency and Monotonic Write Consistency could both be satisfied in a system that doesn't provide Sequential Consistency. What global guarantee would still be missing?