From b766089a10ecbbffddc9f0572b630ce2c9300e68 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 3 Nov 2026 06:08:28 +0100 Subject: announce what trees miss --- docs/peers.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'docs/peers.md') diff --git a/docs/peers.md b/docs/peers.md index be77d5a..59b45d0 100644 --- a/docs/peers.md +++ b/docs/peers.md @@ -316,7 +316,12 @@ cycles; taking only one it reaches routes around links that don't work: where a behind NAT reaches a single member, that one comes first among those as far from it, and the others take it as their parent. A sync message that passes a writer's change on says whose; whoever applies one sends it at once to its children in -that writer's tree, however it got it, and leaves them out of its announcement round. +that writer's tree, however it got it. Its announcement round then goes only to the +neighbours the tree leaves out (no member they reach comes before them, or the member +list's graph doesn't have them); all others are told in a slow round 2 s later, which +catches what a tree missed (a parent that went away, nodes whose views of the tree +differed) and covers everything that came meanwhile: while changes keep coming, each +neighbour gets an announcement about every 2 s, not with every change. A member without a parent it reaches, or whose parent missed the change, gets it by announcement and pull as before, then passes it on to its own children. With every link working, each member gets each change once (`bench_writer_trees`: 1999 messages per -- cgit v1.3.1