aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-06 19:54:09 +0100
committertv <tv@krebsco.de>2026-11-06 19:54:09 +0100
commit5994b49412c058079639585501a78e6458fdbb6f (patch)
treeca78aa3cd7d0d6d2a48bfa42d61afcddb8efd6df /docs
parent7c0c318dca3054be6c7bacf5a4b3f5a4e47cc949 (diff)
HyParView (slim)
Diffstat (limited to 'docs')
-rw-r--r--docs/development.md3
-rw-r--r--docs/example.toml13
-rw-r--r--docs/measurements.md3
-rw-r--r--docs/openapi.yaml5
4 files changed, 19 insertions, 5 deletions
diff --git a/docs/development.md b/docs/development.md
index 0617562..9296e8b 100644
--- a/docs/development.md
+++ b/docs/development.md
@@ -32,7 +32,8 @@ summary of each workload's mean delay and messages per write, run by run (runs
differ: one can't tell a small change from chance); with
`SIM_DISSEMINATION=plumtree`, every simulated node passes changes on by PlumTree
(`--dissemination`), the benchmark's views of the trees still being the writers'
-trees'; all at once with
+trees'; with `SIM_TOPOLOGY=hyparview`, every simulated node chooses its neighbours by
+HyParView (`--topology`; with PlumTree, as writers' trees need the shared graph); all at once with
`BENCH_PARALLEL=1`, faster on many cores, though sharing them makes delays come out
somewhat higher; and in `bench_bridge`, large values from a writer on a fast transport
through a bridge to a node on a slow one: what that node gets as sync messages and as
diff --git a/docs/example.toml b/docs/example.toml
index 6f4ccbe..de32ada 100644
--- a/docs/example.toml
+++ b/docs/example.toml
@@ -190,10 +190,19 @@ htpasswd = "/etc/continuum/htpasswd"
# How a change reaches every member: writers-trees (computed alike on every node from
# the member list) or plumtree (eager links pruned where they deliver twice, grafted
-# where announcements had to bring a change). For experiments: every node of a swarm
-# must use the same one.
+# where announcements had to bring a change). A genesis node records its own in the
+# document; every node follows what the swarm records, which a protocol writer may
+# change (_continuum/dissemination), and uses its own only where the swarm records none
+# it knows.
# dissemination = "writers-trees"
+# How a node's neighbours are chosen: ring-and-pairs (the graph every node computes
+# alike from the member list) or hyparview (an active view of neighbours each agreed
+# to, the others asked from the member list as neighbours fail). Recorded and followed
+# as dissemination is (_continuum/topology); with hyparview, what needs the shared
+# graph does nothing (writers' trees: use dissemination = "plumtree").
+# topology = "ring-and-pairs"
+
# Warn in the log when this node's clock differs from most of its peers' by more than
# this, for sure (beyond half the round trip it was measured over, from their PONGs); 0:
# never.
diff --git a/docs/measurements.md b/docs/measurements.md
index e134ce2..a444862 100644
--- a/docs/measurements.md
+++ b/docs/measurements.md
@@ -180,7 +180,8 @@ clocks"); setting them is the operating system's job (NTP).
Messages and payload bytes by direction (`sent`, `received`, `refused`) and kind
(`hello`, `helloReply`, `sync`, `status`, `statusReply`, `blob`, `identity` for WHO and
ME, `paths` for PING and PONG, `links` for LINKS and their replies, `probe` for PROBE
-and PROBE_REPLY, `plumtree` for PRUNE and GRAFT). The layers below the node count WHO and ME, and the
+and PROBE_REPLY, `plumtree` for PRUNE and GRAFT, `hyparview` for NEIGHBOUR,
+NEIGHBOUR_REPLY and DISCONNECT). The layers below the node count WHO and ME, and the
paths layer's own PINGs and PONGs, under the address they went to or came from; a peer
(`/peers`) has those of its addresses too, where it is known to be at them. Payload bytes are what a transport's message carries (the wire
encoding): not the transport's framing (for Mycelium, its topic and the base64 of its
diff --git a/docs/openapi.yaml b/docs/openapi.yaml
index 5ea3c19..0193495 100644
--- a/docs/openapi.yaml
+++ b/docs/openapi.yaml
@@ -1707,7 +1707,7 @@ components:
ByKind:
type: object
- required: [hello, helloReply, sync, status, statusReply, blob, identity, paths, links, probe, plumtree]
+ required: [hello, helloReply, sync, status, statusReply, blob, identity, paths, links, probe, plumtree, hyparview]
properties:
hello:
$ref: '#/components/schemas/Counter'
@@ -1737,6 +1737,9 @@ components:
plumtree:
$ref: '#/components/schemas/Counter'
description: PRUNE and GRAFT, with --dissemination plumtree.
+ hyparview:
+ $ref: '#/components/schemas/Counter'
+ description: NEIGHBOUR, NEIGHBOUR_REPLY and DISCONNECT, with --topology hyparview.
Traffic:
type: object