aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-04 20:10:08 +0100
committertv <tv@krebsco.de>2026-11-04 20:10:08 +0100
commit6487281ad8e33138173cdb934bc6caf9333a3721 (patch)
tree7e950fa3e020a26390708d932225d08089a28375 /docs
parentc3faf6ecde8157154a01daa2ddc0ac02e6c761f1 (diff)
slow round back off
Diffstat (limited to 'docs')
-rw-r--r--docs/architecture.md3
-rw-r--r--docs/peers.md12
2 files changed, 10 insertions, 5 deletions
diff --git a/docs/architecture.md b/docs/architecture.md
index 2ad7638..a63e36c 100644
--- a/docs/architecture.md
+++ b/docs/architecture.md
@@ -229,7 +229,8 @@ the write lock, stamped with the clock) → `publish_change` (bumps the version,
neighbour applies it and sends it at once to its children in the writer's tree (the
writer known from the changes' author), which do the same; the members the trees miss
are told of the new heads by announcement and pull what they lack, at once where no
-tree reaches them, else in the slow round 2 s later.
+tree reaches them, else in the slow round 2 s later (up to 16 s while nobody it tells
+lacks anything).
**An inbound message.** Consumer → `handle_message`: drop our own and stale-run
replies, admit (swarm key), mark the peer seen, record its epoch (ignoring late ones),
diff --git a/docs/peers.md b/docs/peers.md
index 051db4e..d22b7c5 100644
--- a/docs/peers.md
+++ b/docs/peers.md
@@ -342,10 +342,14 @@ be lost, the child's other neighbours tell it in their slow rounds (below), and
pulls; a child that reaches no other member is told in its parent's. The announcement
round of a node that passed changes on 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.
+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, the last of a run of
+messages along a tree lost) and covers everything that came meanwhile: while changes
+keep coming, each neighbour gets an announcement about every 2 s, not with every
+change. As a neighbour answers an announcement only when it lacks something, an
+answered slow round means a tree missed; while none is answered, the trees work, and
+each slow round waits twice as long as the one before, up to 16 s, and 2 s again after
+the first answer.
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