Systems · paper 11

Spanner: Google's Globally-Distributed Database

Corbett et al. · 2012 · OSDI · 60 min · Dense
Summary

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?

124 online