Skip to content

relax drift? to match the paper and unburden the client#22

Merged
NeilMenne merged 2 commits into
masterfrom
hlclock-relax-constraints
May 28, 2026
Merged

relax drift? to match the paper and unburden the client#22
NeilMenne merged 2 commits into
masterfrom
hlclock-relax-constraints

Conversation

@langmartin
Copy link
Copy Markdown
Contributor

@langmartin langmartin commented May 28, 2026

  1. Relax recv max drift to check only l - pt and not abs(l - pt). In the paper, maximum drift is limited to the absolute value of the difference between the logical and physical time as a corollary of the algorithm, which only requires checking when the logical clock is in the future of physical time. This allows us to recv old timestamps, which simplifies clients by allowing them to recv the timestamps of all events before acting and allowing this library to ensure that the causal order is preserved.

  2. We were checking max drift on send, but that only catches errors caused by a system administrator setting the system clock to jump or, more commonly, causing an error whenever the computer running the VM sleeps.

@langmartin langmartin force-pushed the hlclock-relax-constraints branch from f33641f to df48fd9 Compare May 28, 2026 15:27
1. Relax recv max drift to check only `l - pt` and not `abs(l - pt)`.
   In the paper, maximum drift is limited to the absolute value of the
   difference between the logical and physical time as a corollary of
   the algorithm, which only requires checking when the logical clock
   is in the future of physical time. This allows us to recv old
   timestamps, which simplifies clients by allowing them to recv the
   timestamps of all events before acting and allowing this library to
   ensure that the causal order is preserved.

2. We were checking max drift on send, but that only catches errors
   caused by a system administrator setting the system clock to jump
   or, more commonly, causing an error whenever the computer running
   the VM sleeps.
@langmartin langmartin force-pushed the hlclock-relax-constraints branch from df48fd9 to d031518 Compare May 28, 2026 16:08
@langmartin langmartin requested a review from NeilMenne May 28, 2026 16:34
Comment thread lib/hlclock/timestamp.ex
@NeilMenne NeilMenne merged commit 2c6386e into master May 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants