Spanner (database)

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Spanner is Google's globally distributed NewSQL database, the successor to BigTable.[1] Google describes Spanner as not a pure relational system because each table must have a primary-key column.[2]

Because the lack of transactions in BigTable led to frequent complaints from users, Google made distributed transactions central to Spanner's design. Based on their experience with BigTable, Google argues that it is better to have application programmers deal with performance problems due to overuse of transactions as bottlenecks arise, rather than always coding around the lack of transactions.[2]

The Google F1 SQL database management system (DBMS) is built on it,[3] and replaces Google’s custom MySQL.[4]

Described as a NewSQL[5] platform, it is used internally within their infrastructure as part of the Google platform.[6] It uses the Paxos algorithm as part of its operation to shard data across hundreds of datacenters.[1] It makes heavy use of hardware-assisted time synchronization using GPS clocks and atomic clocks to ensure global consistency.[1]

CockroachDB is an open-source project that aims to bring the features of Spanner and F1 to the world outside Google.[7] It is developed by a startup company called Cockroach Labs, Inc.[8]


  1. ^ a b c Corbett et al. 2012.
  2. ^ a b Corbett et al. 2012, p. 4.
  3. ^ Shute et al. 2012.
  4. ^ Shute et al. 2012, p. 19: ‘Summary: We've moved a large and critical application suite from MySQL to F1.’
  5. ^ Hoff, Todd (2012-09-24). "Google Spanner's Most Surprising Revelation: NoSQL is Out and NewSQL is In". Retrieved 2012-10-07. 
  6. ^ Jack Clark (September 18, 2012). "Google reveals Spanner, the database tech that can span the planet". ZDNET. Retrieved 2012-09-21. 
  7. ^ "Out in the Open: Ex-Googlers Building Cloud Software That's Almost Impossible to Take Down - WIRED". WIRED. 
  8. ^ "Google Groups". 


  • Corbett, James C; Dean, Jeffrey; Epstein, Michael; Fikes, Andrew; Frost, Christopher; Furman, JJ; Ghemawat, Sanjay; Gubarev, Andrey; Heiser, Christopher; Hochschild, Peter; Hsieh, Wilson; Kanthak, Sebastian; Kogan, Eugene; Li, Hongyi; Lloyd, Alexander; Melnik, Sergey; Mwaura, David; Nagle, David; Quinlan, Sean; Rao, Rajesh; Rolig, Lindsay; Saito, Yasushi; Szymaniak, Michal; Taylor, Christopher; Wang, Ruth; Woodford, Dale, "Spanner: Google’s Globally-Distributed Database", Proceedings of OSDI 2012 (Google), retrieved 18 September 2012 .
  • Date, Christopher ‘Chris’ J, "6. Relations, Part II. The Relational Model", An Introduction to Database Systems (8th ed.), Addison Wesley, ISBN 978-0321197849 .
  • Shute, Jeffrey ‘Jeff’; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin ‘Ben’; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad; Chen, Xin; Jegerlehner, Beat; Littlefield, Kyle; Tong, Phoenix (2012), "F1 — the Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business", Research (presentation), Sigmod: Google .

External links[edit]