Spanner: Google's Globally-Distributed Database
James C. Corbett, Jeffrey Dean, Michael Epstein, et al.2012OSDI 2012
Read it on research.google(opens in a new tab)Why this one
Read this after Bigtable and Time, Clocks, and the Ordering of Events in a Distributed System. Bigtable gives you the distributed storage shape, and Lamport teaches you why clocks are not truth. Spanner is the rare paper that says, fine, then let us engineer the clock until its uncertainty is a first class API. The idea people miss is not that atomic clocks are magic. It is that TrueTime exposes a bound on being wrong, and the database waits out that uncertainty when it must promise external consistency. That turns time from a hidden assumption into a design parameter. If you build systems that cross regions, this paper is worth your evening because it shows the actual bill for strong semantics: quorum replication, placement, transactions, timestamp assignment, and deliberate waiting.
What to take away
- TrueTime returns an interval, not a timestamp, so Spanner programs against clock uncertainty directly.
- Commit wait is the price Spanner pays to make transaction order match real time order.
- Paxos handles replication, but TrueTime lets Spanner assign globally meaningful commit timestamps.
Reads with
- Bigtable: A Distributed Storage System for Structured Data
spanner adds transactions and global consistency to this storage lineage
- Time, Clocks, and the Ordering of Events in a Distributed System
truetime is the engineered answer to lamport's warning about clock order
- Zanzibar: Google's Consistent, Global Authorization System
zanzibar depends on spanner's external consistency for global authorization decisions