HLClock v0.1.6 HLClock View Source
Hybrid Logical Clock
Provides globally-unique, monotonic timestamps. Timestamps are bounded by the
clock synchronization constraint, max_drift.
In order to account for physical time drift within the system, timestamps should regularly be exchanged between nodes. Generate a timestamp at one node via HLClock.send_timestamp/1; at the other node, call HLClock.recv_timestamp/2 with the received timestamp from the first node.
Inspired by https://www.cse.buffalo.edu/tech-reports/2014-04.pdf
Link to this section Summary
Functions
Determines if the clock's timestamp "happened before" a different timestamp
Configurable clock synchronization parameter, ε. Defaults to 300 seconds
Functionally equivalent to using send_timestamp/0. This generates a timestamp
for local causality tracking
Given the current timestamp for this node and a provided remote timestamp, perform the merge of both logical time and logical counters. Returns the new current timestamp for the local node
Generate a single HLC Timestamp for sending to other nodes or local causality tracking
Link to this section Functions
before?(t1, t2) View Source
Determines if the clock's timestamp "happened before" a different timestamp
max_drift() View Source
Configurable clock synchronization parameter, ε. Defaults to 300 seconds
Functionally equivalent to using send_timestamp/0. This generates a timestamp
for local causality tracking.
recv_timestamp(remote) View Source
Given the current timestamp for this node and a provided remote timestamp, perform the merge of both logical time and logical counters. Returns the new current timestamp for the local node
send_timestamp() View Source
Generate a single HLC Timestamp for sending to other nodes or local causality tracking