Coordination cannot be made cheaper
Coordination is the only thing you cannot make cheaper.
What it is
2. Coordination is the only thing you cannot make cheaper. You can add bandwidth, add machines, add cache. You cannot make agreement between two parties cost less than one round trip, and you cannot make it happen at all across a network partition (a break in communication between groups of machines). This is why every architecture in this field is, underneath, an attempt to avoid needing to agree: partition by key so that nobody must coordinate, use immutable logs so that nobody must lock, choose operations whose order does not matter. Distributed-systems design is largely the art of not needing consensus.
From Data Movement › The epistemic limit
The order of preference follows from this list: partition beats immutability beats optimism beats locking. The first two remove the contention. The last two only price it. This is also, not by chance, the order in which the industry moved over the years.
From Core Data Structures › Coordination is the cost
Where it appears
In 7 mechanisms. Each says what the mechanism is about, then how this principle shows up there, in its own words.
- Data Movement
How do records cross between two systems that have independent rates, independent availability and independent lifetimes, and what are you willing to lose when the assumption underneath the crossing breaks?
Coordination is the only thing you cannot make cheaper.
Read it inWhat changed: the epistemic limitContent-based and affinity routingPartitioning: the four strategies
- Core Data Structures
How do we choose a data structure when the real cost is set by the hardware, not by Big-O?
The order of preference follows from this list: partition beats immutability beats optimism beats locking.
Read it inThe currency is coordination
- Transactions & Concurrency Control
What happens when many users change the same data at the same time, and how do we keep the result correct?
Distance converts a detection problem into an ordering problem.
Read it inDeadlock
- Consistency & Isolation Models
When many users, many objects and many copies exist at once, which histories does the system promise never to show, and who writes the code for the histories it does show?
First-committer-wins is a coordination point by definition.
Read it inHighly available transactions and invariant confluence
- Distributed Systems Coordination
Who is allowed to decide, and how does everyone else learn the decision without asking?
Availability across k symmetric sites requires a tiebreaking vote in a (k+1)-th failure domain.
Read it inSplit brain and the two-site problemAgreement is expensive, dissemination is cheap
- Schema Management & Evolution
What happens when the shape of your data changes on its own schedule, and nobody can change the readers, the writers and the old data at the same moment?
There is no atomic update across writer and readers.
Read it inStructure becomes a variableEvolution operations and expand/contract
- Interfaces & Formats
What can two parties agree on when they cannot talk to each other?
The producer and the consumer cannot be updated atomically, and often the producer no longer exists when the consumer arrives.
Read it inWhat changes at a boundary
Related
Made on the same pages most often.