Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
Spanner (database)
Scalable relational database service offered by Google's Cloud Platform

Spanner is a distributed SQL database management and storage service developed by Google. It provides features such as global transactions, strongly consistent reads, and automatic multi-site replication and failover. Spanner is used in Google F1, the database for its advertising business Google Ads, as well as Gmail and Google Photos.

Related Image Collections Add Image
We don't have any YouTube videos related to Spanner (database) yet.
We don't have any PDF documents related to Spanner (database) yet.
We don't have any Books related to Spanner (database) yet.
We don't have any archived web articles related to Spanner (database) yet.

Features

Spanner stores large amounts of mutable structured data. Spanner allows users to perform arbitrary queries using SQL with relational data while maintaining strong consistency and high availability for that data with synchronous replication.

Key features of Spanner:

  • Transactions can be applied across rows, columns, tables, and databases within a Spanner universe.
  • Clients can control the replication and placement of data using automatic multi-site replication and failover.
  • Replication is synchronous and strongly consistent.
  • Reads are strongly consistent and data is versioned to allow for stale reads: clients can read previous versions of data, subject to garbage collection windows.
  • Supports a native SQL interface for reading and writing data.

History

Spanner was first described in 2012 for internal Google data centers.4

Spanner's SQL capability was added in 2017 and documented in a SIGMOD 2017 paper.5 It became available as part of Google Cloud Platform in 2017, under the name "Cloud Spanner".6

Architecture

Spanner uses the Paxos algorithm as part of its operation to shard (partition) data across up to hundreds of servers.7 It makes heavy use of hardware-assisted clock synchronization using GPS clocks and atomic clocks to ensure global consistency.8 TrueTime is the brand name for Google's distributed cloud infrastructure, which provides Spanner with the ability to generate monotonically increasing timestamps in data centers around the world.9

Google's F1 SQL database management system (DBMS) is built on top of Spanner,10 replacing Google's custom MySQL variant.11

Bibliography

  • 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 (2012). Spanner: Google's Globally-Distributed Database (PDF). 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI'12). Hollywood, CA. Retrieved 18 September 2012.{{cite conference}}: CS1 maint: ref duplicates default (link).
  • Date, Christopher ‘Chris’ J (2004), "6. Relations, Part II. The Relational Model", An Introduction to Database Systems (8th ed.), Addison Wesley, ISBN 978-0-32119784-9.
  • 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{{citation}}: CS1 maint: location missing publisher (link).
  • Shute, Jeffrey ‘Jeff’; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin ‘Ben’; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad; Rae, Ian; Apte, Himani; Littlefield, Kyle; Cieslewicz, John (2013), "F1: A Distributed SQL Database That Scales", Research (presentation), International Conference on Very Large Data Bases{{citation}}: CS1 maint: location missing publisher (link).

Further reading

References

  1. Corbett et al. 2012. - 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 (2012). Spanner: Google's Globally-Distributed Database (PDF). 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI'12). Hollywood, CA. Retrieved 18 September 2012. http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/spanner-osdi2012.pdf

  2. Shute et al. 2012. - 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 http://research.google.com/pubs/pub38125.html

  3. "Announcing Cloud Spanner Price Performance Updates". https://cloud.google.com/blog/products/databases/announcing-cloud-spanner-price-performance-updates

  4. Clark, Jack (September 18, 2012). "Google reveals Spanner, the database tech that can span the planet". ZDNet. Retrieved August 4, 2021. https://www.zdnet.com/article/google-reveals-spanner-the-database-tech-that-can-span-the-planet/

  5. Spanner: Becoming a SQL System. 9 May 2017. pp. 331–343. doi:10.1145/3035918.3056103. ISBN 9781450341974. S2CID 3055672. 9781450341974

  6. Srivastava, Deepti (February 14, 2017). "Introducing Cloud Spanner: a global database service for mission-critical applications". Google Cloud Blog. Retrieved August 4, 2021. https://cloud.google.com/blog/products/gcp/introducing-cloud-spanner-a-global-database-service-for-mission-critical-applications

  7. Corbett et al. 2012. - 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 (2012). Spanner: Google's Globally-Distributed Database (PDF). 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI'12). Hollywood, CA. Retrieved 18 September 2012. http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/spanner-osdi2012.pdf

  8. Corbett et al. 2012. - 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 (2012). Spanner: Google's Globally-Distributed Database (PDF). 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI'12). Hollywood, CA. Retrieved 18 September 2012. http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/spanner-osdi2012.pdf

  9. "Cloud Spanner: TrueTime and external consistency". Google Cloud. Retrieved 2020-11-24. https://cloud.google.com/spanner/docs/true-time-external-consistency

  10. Shute et al. 2012. - 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 http://research.google.com/pubs/pub38125.html

  11. Shute et al. 2012, p. 19: ‘Summary: We've moved a large and critical application suite from MySQL to F1.’ - 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 http://research.google.com/pubs/pub38125.html