I am reading the crdb docs about the use of HLC vs. Spanner’s TrueTime. In spanner’s TrueTime, since it is a global wall clock time with a bound (7ms) on the clock drift, I can see how this is used to provide global timestamp ordering, as used in implementing transactions, snapshot isolation etc.
In crdb, since HLC is a wall clock + vector clock, but this is within a given raft group (range shard), I am a bit confused how you get global timestamp ordering across range shards?
Assuming you use NTP to synchronize server clocks, the drift could as much as 100ms.
I am wondering how crdb gets global timestamp ordering across shards using these.