zlacker

[return to "Clocks Are Bad, Or, Welcome to the World of Distributed Systems"]
1. neolef+K8[view] [source] 2013-11-13 02:27:53
>>pharkm+(OP)
How do other distributed databases handle this?
◧◩
2. krilno+Mc[view] [source] 2013-11-13 03:40:13
>>neolef+K8
Google's Spanner [1] uses something it calls TrueTime:

"The key enabler of these properties is a new TrueTime API and its implementation. The API directly exposes clock uncertainty, and the guarantees on Spanner’s timestamps depend on the bounds that the implementation provides. If the uncertainty is large, Spanner slows down to wait out that uncertainty. Google’s cluster-management software provides an implementation of the TrueTime API. This implementation keeps uncertainty small (generally less than 10ms) by using multiple modern clock references (GPS and atomic clocks)."

[1] Spanner: Google's globally-distributed database https://www.usenix.org/system/files/conference/osdi12/osdi12...

◧◩◪
3. theatr+2f[view] [source] 2013-11-13 04:25:21
>>krilno+Mc
With TrueTime you are trading some latency on concurrent operations for correctness.

Other structures such as CRDTs/lattices might be more appropriate for your use case.

◧◩◪◨
4. madhus+ql[view] [source] 2013-11-13 06:33:17
>>theatr+2f
By correctness you mean consistency? You don't have to be consistent all the time, i.e. you can trade consistency, but never correctness.

If we could have traded correctness, we could have optimized everything and gone home by now :)

[go to top]