Spanner: TrueTime and external consistency | Google Cloud
TrueTime is a highly available, distributed clock that is provided to applications on all Google servers1. TrueTime enables applications to generate monotonically increasing timestamps: an application can compute a timestamp T that is guaranteed to be greater than any timestamp T' if T' finished being generated before T started being generated. This guarantee holds across all servers and all timestamps. This feature of TrueTime is used by Spanner to assign timestamps to transactions. Specifically, every transaction is assigned a timestamp that reflects the instant at which Spanner considers it to have occurred. Because Spanner uses multi-version concurrency control, the ordering guarantee on timestamps enables clients of Spanner to perform consistent reads across an entire database (even across multiple Cloud regions) without blocking writes. Spanner provides clients with the strictest concurrency-control guarantees for transactions, which is called external consistency2. Under externa
TrueTime is a highly available, distributed clock that is provided to applications on all Google servers1. TrueTime enables applications to generate monotonically increasing timestamps: an application can compute a timestamp T that is guaranteed to be greater than any timestamp T', if T' finished being generated before T started being generated. This guarantee holds across all servers and all timestamps. This feature of TrueTime is used by Spanner to assign timestamps to transactions. Specifically, every transaction is assigned a timestamp that reflects the instant at which Spanner…
related reading
- Spanner: Google's Global Distributed Databasepdos.csail.mit.edu
- https://pdos.csail.mit.edu/6.824/notes/l-spanner.txtpdos.csail.mit.edu
- Spanner (database) - Wikipediaen.wikipedia.org
- A Distributed Systems Reading Listferd.ca
- DBMS Musings: It’s Time to Move on from Two Phase Commitdbmsmusings.blogspot.com
- Analysesjepsen.io
- Distributed Systems Safety Researchjepsen.io
- Debezium and TimescaleDBdebezium.io
- From monolith to Lakebase to LTAP: rethinking the database from storage up | Databricks Blogdatabricks.com
- How to do distributed locking - Martin Kleppmann's blogmartin.kleppmann.com
- Distributed systems for fun and profitbook.mixu.net
- Strong consistency modelsaphyr.com