Spanner: Google's Globally-Distributed Database
Spanner provides externally consistent transactions across data centres by combining Paxos-replicated shards with TrueTime, an API that exposes clock uncertainty as an interval. Commit waits out the uncertainty so timestamps reflect real time ordering worldwide.
Key ideas
- Expose clock uncertainty instead of pretending it does not exist
- Two-phase commit over Paxos groups keeps transactions available through failures
- Snapshot reads at a timestamp need no locks
Why read it now
It shows what it costs to get strong consistency at global scale, and why bounded clock error is a systems property worth paying for.
Question to keep in mind
How does the commit-wait rule turn a clock with error bars into a global ordering guarantee?