Spanner: Becoming a SQL System

Nathan Bales
Nico Bruno
Brian F. Cooper
Adam Dickinson
Andrew Fikes
Campbell Fraser
Andrey Gubarev
Milind Joshi
Eugene Kogan
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.