Spanner is Google's globally distributed NewSQL database. Google describes Spanner as a not pure relational database system because each table must have a primary key column.
The lack of transactions in Bigtable led to frequent complaints from users, so Google made distributed transactions central to Spanner's design. Based on its experience with Bigtable, Google argues that it is better to have application programmers deal with performance problems due to overuse of transactions as bottlenecks arise, rather than always coding around the lack of transactions.
Described as a NewSQL platform, Spanner is used internally within Google's infrastructure as part of the Google platform and also available as part of Google Cloud Platform. Spanner uses the Paxos algorithm as part of its operation to shard data across hundreds of datacenters. It makes heavy use of hardware-assisted time synchronization using GPS clocks and atomic clocks to ensure global consistency.
The Google F1 SQL database management system (DBMS) is built on top of Spanner, replacing Google's custom MySQL variant.