From 5994b49412c058079639585501a78e6458fdbb6f Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 6 Nov 2026 19:54:09 +0100 Subject: HyParView (slim) --- docs/development.md | 3 ++- docs/example.toml | 13 +++++++++++-- docs/measurements.md | 3 ++- docs/openapi.yaml | 5 ++++- 4 files changed, 19 insertions(+), 5 deletions(-) (limited to 'docs') 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 -- cgit v1.3.1