diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/peers.md | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/docs/peers.md b/docs/peers.md index d22b7c5..d5403c1 100644 --- a/docs/peers.md +++ b/docs/peers.md @@ -333,13 +333,15 @@ children in each of their writers' trees, however they came (along a tree, with answer to one of its own messages, pulled). A sync message along a tree also says whose; one that had those changes already passes them on too (they may have come another way first, when it wasn't yet anyone's turn to pass them on), so a child that -lacks them still gets them. A message along a tree to a child that had nothing the -parent lacks needs no answer: the parent takes it as delivered (the child's heads are -its own now), and the child, level with it, says nothing; a child with changes the -parent lacks answers with them, as before. That leaves out about half the sync -messages, Automerge's answers that only say "I have your heads". Should the message -be lost, the child's other neighbours tell it in their slow rounds (below), and it -pulls; a child that reaches no other member is told in its parent's. The announcement +lacks them still gets them. A sync message to a peer that had nothing the sender lacks, +with no answer awaited, needs none: the sender takes it as delivered (the peer's heads +are its own now) and says so in the envelope, and the peer, level with it, says +nothing; one with changes the sender lacks answers with them, as before. That leaves +out about half the sync messages, Automerge's answers that only say "I have your +heads": along trees, to pulls, to what is sent again. Should the message be lost, the +peer still lacks it: one that pulled asks again after its reply timeout; a child in a +tree is told by its other neighbours in their slow rounds (below), and pulls (one that +reaches no other member, by its parent's), or can't apply the next message and asks. 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 |
