Database / Google Spanner Database Interview questions
What happens internally when Spanner commits a distributed transaction?
For a transaction touching multiple splits, Spanner's client picks one participant Paxos group as the transaction coordinator and runs a two-phase commit protocol across all groups involved.
In the prepare phase, every participant group replicates its portion of the write via its own Paxos majority and reports back "prepared," meaning it has durably logged the intent but not yet made it visible. The coordinator then picks a single commit timestamp, using TrueTime, that is later than all participants' prepare timestamps, and performs commit wait to ensure that timestamp has definitely passed. In the commit phase, it tells every participant to apply the write at that timestamp and release locks. If any participant fails to prepare, the coordinator aborts the whole transaction and every participant rolls back, preserving atomicity across splits that may live on entirely different machines.
More Related questions...