Spanner: Becoming a SQL System

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

Abstract

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.