Overview
Explore a conference talk on Spanner, Google's groundbreaking globally-distributed database system. Delve into the architecture, features, and design rationale behind this scalable, multi-version, and synchronously-replicated database. Learn about Spanner's unique ability to distribute data at a global scale while supporting externally-consistent distributed transactions. Discover the novel time API that exposes clock uncertainty, crucial for enabling external consistency and powerful features like nonblocking reads in the past, lock-free read-only transactions, and atomic schema changes across the entire Spanner system. Gain insights into the implementation of TrueTime, timestamp invariants, and commit wait mechanisms. Understand how Spanner addresses challenges in global clock synchronization and network-induced uncertainty. This award-winning presentation covers topics ranging from read transactions and version management to the intricacies of timestamp handling and replication strategies, providing a comprehensive overview of Google's innovative approach to global-scale data management.
Syllabus
Intro
What is Spanner?
Example: Social Network
Overview
Read Transactions
Single Machine
Multiple Machines
Version Management
Synchronizing Snapshots
Timestamps, Global Clock
Timestamp Invariants
Timestamps and True Time
Commit Wait and Replication
Commit Wait and 2-Phase Commit
True Time Architecture
TrueTime implementation
What If a Clock Goes Rogue?
What's in the Literature
Future Work
Conclusions
Network-Induced Uncertainty
Taught by
USENIX