diff options
| author | tv <tv@krebsco.de> | 2026-10-31 06:54:59 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-31 06:54:59 +0100 |
| commit | c5f743ef0f91e4afd0661824d4ec7df1483dcbad (patch) | |
| tree | e5b5cdafb405c5674b057cc6d1c27f3ff7226a13 /src/swarm/sync.rs | |
| parent | 1cb2ef3f00e695a414de87acfec090dfde749934 (diff) | |
propagate clock figures
Diffstat (limited to 'src/swarm/sync.rs')
| -rw-r--r-- | src/swarm/sync.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/swarm/sync.rs b/src/swarm/sync.rs index 51144ac..18c017c 100644 --- a/src/swarm/sync.rs +++ b/src/swarm/sync.rs @@ -350,6 +350,7 @@ pub(crate) async fn handle_sync( let message = payload; let peer = peer.to_owned(); let clock = Arc::clone(&state.clock); + let ahead_ms = state.clock_ahead_ms.load(Ordering::Relaxed); // Some((caught_up, heads changed)) when applied, None when the message belongs // to another epoch. @@ -386,7 +387,9 @@ pub(crate) async fn handle_sync( stats.heads_seen(heads_after.len()); let changed = heads_after != heads_before; if changed && measure_propagation { - let now_ms = clock.now_millis().as_u64() as i64; + // Now by the peers' clocks (their median): this node's own clock skew + // doesn't count; the writer's still does. + let now_ms = clock.now_millis().as_u64() as i64 - ahead_ms; // Time 0: not stamped (snapshots, older nodes). let delays: Vec<i64> = replica .doc |
