Spanner: Becoming a SQL System

  • D. F. Bacon ,
  • Nathan Bales ,
  • ,
  • Brian F. Cooper ,
  • Adam Dickinson ,
  • A. Fikes ,
  • Campbell Fraser ,
  • Andrey Gubarev ,
  • Milind Joshi ,
  • Eugene Kogan ,
  • Alexander Lloyd ,
  • S. Melnik ,
  • Rajesh Rao ,
  • David Shue ,
  • Christopher Taylor ,
  • Marcel van der Holst ,
  • Dale Woodford

Proceedings of the 2017 ACM International Conference on Management of Data |

Publication

Spanner is a globally-distributed data management system that backs hundreds of mission-critical services at Google. Spanner is built on ideas from both the systems and database communities. The first Spanner paper published at OSDI’12 focused on the systems aspects such as scalability, automatic sharding, fault tolerance, consistent replication, external consistency, and wide-area distribution. This paper highlights the database DNA of Spanner. We describe distributed query execution in the presence of resharding, query restarts upon transient failures, range extraction that drives query routing and index seeks, and the improved blockwise-columnar storage format. We touch upon migrating Spanner to the common SQL dialect shared with other systems at Google.