aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-04 05:22:17 +0100
committertv <tv@krebsco.de>2026-11-04 05:22:17 +0100
commitce6d4f9a56fbf8d162d10c415d5589062e9fbf1f (patch)
treeeb0df90d7d685ab9728f05ab9ed19aa8afde6d76 /docs
parent40073ebf9570464a69a928eba9c51b4dad6e699a (diff)
pull after grace
Before pulling, a node waits one measured round trip to the announcer (1 s at most) and pulls only what is still missing. If the round trip isn't known yet, it pulls at once, as now. On the clean benchmark links the round trip is a few milliseconds, so those scenarios shouldn't change.
Diffstat (limited to 'docs')
-rw-r--r--docs/peers.md4
1 files changed, 3 insertions, 1 deletions
diff --git a/docs/peers.md b/docs/peers.md
index 8b58df0..8a3333d 100644
--- a/docs/peers.md
+++ b/docs/peers.md
@@ -287,7 +287,9 @@ writes go on and newer changes are still on their way to it; nor is a neighbour
own announcement or STATUS brought them, are this node's: announcements wait 200 to
400 ms, at random, so of two neighbours with the same news one is usually first, and
the other skips it), and a neighbour that lacks those heads pulls them (it sets them as the peer's heads in its sync state, so Automerge asks
-for what's missing). It pulls from one neighbour at a time (15 s timeout); neighbours
+for what's missing), if it still lacks them after a round trip to the announcer (at
+most 1 s): while writes go on, the newest are usually on their way to it along a
+writer's tree, and would otherwise come twice. It pulls from one neighbour at a time (15 s timeout); neighbours
that announce heads it lacks meanwhile wait their turn and are pulled from as soon as
the current pull is answered, if they still have something it lacks. The regular
STATUS (every third keepalive) triggers the same pull, so gaps close within a few