|
|
|
|
|
by mjb
868 days ago
|
|
Doing consistent reads this way is a fairly old technique, at least back to the 80s (I can dig up some papers if folks are interested). Spanner, rather famously, uses this range approach, but a good number of other systems are based on similar approaches. The important thing for reads is getting an upper error bound from the clock, having storage that can perform reads at that time (eg using MVCC), and having a way for storage to know when it's seen all writes before a timestamp. This can be implemented using PTP, and that's the approach we use at AWS inside some database services. |
|