gsharma / hybrid-logical-clock

Hybrid logical clocks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hybrid Logical Clocks

Theoretical Foundation

There is a gap between the theory and practice of distributed systems in terms of the use of time. The theory of distributed systems shunned the notion of time, and introduced “causality tracking” as a clean abstraction to reason about concurrency. The practical systems employed physical time (NTP) information but in a best effort manner due to the difficulty of achieving tight clock synchronization. In an effort to bridge this gap and reconcile the theory and practice of distributed systems on the topic of time, a hybrid logical clock, HLC, combines the best of logical clocks and physical clocks. HLC captures the causality relationship like logical clocks, and enables easy identification of consistent snapshots in distributed systems. Dually, HLC can be used in lieu of physical/NTP clocks since it maintains its logical clock to be always close to the NTP clock. Moreover HLC fits in to 64 bits NTP timestamp format, and is masking tolerant to NTP kinks and uncertainties. HLC has many benefits for wait-free transaction ordering and performing snapshot reads in multiversion globally distributed databases.

Papers & Additional Reading

Logical Physical Clocks and Consistent Snapshots in Globally Distributed Databases

About

Hybrid logical clocks

License:Apache License 2.0