Google Research

Spanner: Becoming a SQL System

  • David F. Bacon
  • Nathan Bales
  • Nico Bruno
  • Brian F. Cooper
  • Adam Dickinson
  • Andrew Fikes
  • Campbell Fraser
  • Andrey Gubarev
  • Milind Joshi
  • Eugene Kogan
  • Alex Lloyd
  • Sergey Melnik
  • Rajesh Rao
  • Dave Shue
  • Chris Taylor
  • Marcel van der Holst
  • Dale Woodford
Proc. SIGMOD 2017, pp. 331-343 (to appear)


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.

Learn more about how we do research

We maintain a portfolio of research projects, providing individuals and teams the freedom to emphasize specific types of work