Spanner: Google's globally-distributed database

James C. Corbett(Google (United States)), Jay B. Dean(Google (United States)), Michael Epstein(Google (United States)), Andrew Fikes(Google (United States)), Christopher Frost(Google (United States)), J. J. Furman(Google (United States)), Sanjay Ghemawat(Google (United States)), Andrey Gubarev(Google (United States)), Christopher Heiser(Google (United States)), Peter Hochschild(Google (United States)), Wilson C. Hsieh(Google (United States)), Sebastian Kanthak(Google (United States)), Eugene Kogan(Google (United States)), Hongyi Li(Google (United States)), Alexander Lloyd(Google (United States)), Sergey Melnik(Google (United States)), David Mwaura(Google (United States)), David F. Nagle(Google (United States)), Sean Quinlan(Google (United States)), Rajesh Rao(Google (United States)), Lindsay Rolig(Google (United States)), Yasushi Saitō(Google (United States)), Michal Szymaniak(Google (United States)), Christopher M. Taylor(Google (United States)), Ruth Wang(Google (United States)), Dale Woodford(Google (United States))
Unknown
October 8, 2012
Cited by 827

Abstract

Spanner is Google’s scalable, multi-version, globallydistributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This paper describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: nonblocking reads in the past, lock-free read-only transactions, and atomic schema changes, across all of Spanner. 1


Related Papers

Bigtable
Fay W. Chang, Jay B. Dean, Sanjay Ghemawat et al.|ACM Transactions on Computer Systems|2008|3.4k
Linearizability: a correctness condition for concurrent objects
Maurice Herlihy, Jeannette M. Wing|ACM Transactions on Programming Languages and Systems|1990|3.2k
The part-time parliament
Leslie Lamport|ACM Transactions on Computer Systems|1998|2.7k
Dremel
Sergey Melnik, Andrey Gubarev, Jing Jing Long et al.|Proceedings of the VLDB Endowment|2010|708