HLC: Witness Full Remote Timestamps + Property Test Expansions (v1.2.0)#24
Merged
dexcompiler merged 2 commits intomainfrom Jan 27, 2026
Merged
HLC: Witness Full Remote Timestamps + Property Test Expansions (v1.2.0)#24dexcompiler merged 2 commits intomainfrom
dexcompiler merged 2 commits intomainfrom
Conversation
Treat remote HLC timestamps as (wallTime,counter,nodeId) when receiving, and strengthen coordinator property/unit tests for counter and nodeId tie-breaking.
Add Directory.Build.props for shared build settings across the solution, de-duplicate per-project properties, and bump Clockworks package version to 1.2.0.
Owner
Author
|
@copilot review this PR |
Contributor
|
@dexcompiler I've opened a new pull request, #25, to work on those changes. Once the pull request is ready, I'll request review from you. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR updates Clockworks’ Hybrid Logical Clock (HLC) receive behavior to fully respect the incoming remote timestamp (
walltime.counter@node) and strengthens the property-test suite to cover important edge cases and invariants.Key changes
HlcGuidFactory.Witness(HlcTimestamp)now merges using the full remote timestamp ordering(WallTimeMs, Counter, NodeId)(including nodeId tie-breaking) instead of only usingWallTimeMs.HlcStatistics.RecordReceivenow treats “remote ahead” based on full timestamp comparison (remote > before), matching the new witness semantics.property-tests/HlcCoordinatorProperties.fswith additional properties covering:tests/HlcCausalityTests.csfor counter adoption/exceed behavior.Directory.Build.propsto centralize shared build properties across the solution..csproj/.fsprojfiles.1.1.1→1.2.0v1.2.0Notes
HlcOptions.HighThroughputwhere appropriate to avoid drift exceptions during randomized generation, while still enforcing monotonicity/correct ordering invariants.