From 6430e7540ff5e83e777bf3c80bf609f3f85bcfe8 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 4 Nov 2026 06:51:21 +0100 Subject: unanswered pull frees the slot When the answer to a pull is overdue (the sync reply timeout: 1 s in the simtests, 10 s in production), the pull gives up the slot, and the next waiting neighbour is pulled at once. --- docs/peers.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'docs/peers.md') diff --git a/docs/peers.md b/docs/peers.md index a521db3..be04b16 100644 --- a/docs/peers.md +++ b/docs/peers.md @@ -289,9 +289,10 @@ own announcement or STATUS brought them, are this node's: announcements wait 200 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), 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 +writer's tree, and would otherwise come twice. It pulls from one neighbour at a time +(until the answer is overdue, by the sync reply timeout, or 15 s); neighbours that +announce heads it lacks meanwhile wait their turn and are pulled from as soon as the +current pull is answered or overdue, if they still have something it lacks. The regular STATUS (every third keepalive) triggers the same pull, so gaps close within a few keepalive intervals. Changes that pass on along a writer's tree (below) go at once, without announcement or pull; the announcements catch what the trees miss. A node -- cgit v1.3.1