Spanner: Google's globally-distributed database

  • Authors:
  • James C. Corbett;Jeffrey Dean;Michael Epstein;Andrew Fikes;Christopher Frost;J. J. Furman;Sanjay Ghemawat;Andrey Gubarev;Christopher Heiser;Peter Hochschild;Wilson Hsieh;Sebastian Kanthak;Eugene Kogan;Hongyi Li;Alexander Lloyd;Sergey Melnik;David Mwaura;David Nagle;Sean Quinlan;Rajesh Rao;Lindsay Rolig;Yasushi Saito;Michal Szymaniak;Christopher Taylor;Ruth Wang;Dale Woodford

  • Affiliations:
  • Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.;Google, Inc.

  • Venue:
  • OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
  • Year:
  • 2012

Quantified Score

Hi-index 0.03

Visualization

Abstract

Spanner is Google's scalable, multi-version, globally-distributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This paper 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 read-only transactions, and atomic schema changes, across all of Spanner.