aboutsummaryrefslogtreecommitdiffstats
path: root/docs/peers.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/peers.md')
-rw-r--r--docs/peers.md7
1 files changed, 6 insertions, 1 deletions
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