4 ms·
Spanner only uses clocks, aka “TrueTime”, for transactions. It uses an estimate of error to basically build in waits into the system so transactions can be glob
by nvarsj 5y ago
Spanner only uses clocks, aka “TrueTime”, for transactions. It uses an estimate of error to basically build in waits into the system so transactions can be globally ordered.
The underlying system is all built on Paxos though, which uses logical clocks under the hood. That is, the fine grained distributed log is all done w/ logical clocks and events.
Why doesn’t it use logical clocks for transactions? Well I guess it is just a lot simpler and scales better while providing global ordering. The tradeoff being additional milliseconds to decide a transaction - which is probably fine for high level transactions.