Spanner

James C. Corbett(Google (United States)), Jay B. Dean(Google (United States)), Michael Epstein(Google (United States)), Andrew Fikes(Google (United States)), Christopher Frost(Google (United States)), J. J. Furman(Google (United States)), Sanjay Ghemawat(Google (United States)), Andrey Gubarev(Google (United States)), Christopher Heiser(Google (United States)), Peter Hochschild(Google (United States)), Wilson C. Hsieh(Google (United States)), Sebastian Kanthak(Google (United States)), Eugene Kogan(Google (United States)), Hongyi Li(Google (United States)), Alexander Lloyd(Google (United States)), Sergey Melnik(Google (United States)), David Mwaura(Google (United States)), David F. Nagle(Google (United States)), Sean Quinlan(Google (United States)), Rajesh Rao(Google (United States)), Lindsay Rolig(Google (United States)), Yasushi Saitō(Google (United States)), Michal Szymaniak(Google (United States)), Christopher M. Taylor(Google (United States)), Ruth Wang(Google (United States)), Dale Woodford(Google (United States))
ACM Transactions on Computer Systems
August 1, 2013
Cited by 692Open Access
Full Text

Abstract

Spanner is Google’s scalable, multiversion, globally distributed, and synchronously replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This article describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: nonblocking reads in the past, lock-free snapshot transactions, and atomic schema changes, across all of Spanner.


Related Papers

No related papers found

Powered by citation graph analysis