R2D2-MERIDIAN/perf
Joshua Belke af4b92eba4
Some checks failed
helm chart / lint + unittest + render matrix (push) Has been cancelled
helm chart / install on kind (gated) (push) Has been cancelled
helm chart / publish chart to GHCR (push) Has been cancelled
Meridian Harness / Build (aarch64-unknown-linux-musl) (push) Has been cancelled
Meridian Harness / Build (x86_64-unknown-linux-musl) (push) Has been cancelled
Meridian Harness / Publish rolling release (push) Has been cancelled
Meridian Harness / Publish tagged release (push) Has been cancelled
control plane / chart (push) Has been cancelled
control plane / test (push) Has been cancelled
control plane / browser-e2e (push) Has been cancelled
control plane / Build control plane image (linux/amd64) (push) Has been cancelled
control plane / Build control plane image (linux/arm64) (push) Has been cancelled
control plane / Publish signed control plane image (push) Has been cancelled
CI / Detect Changed Paths (push) Has been cancelled
CI / Dead Token Reference Guard (push) Has been cancelled
Docker image / Build (linux/amd64) (push) Has been cancelled
Docker image / Build (linux/arm64) (push) Has been cancelled
Docker image / Build public push gateway (linux/amd64) (push) Has been cancelled
Docker image / Build public push gateway (linux/arm64) (push) Has been cancelled
CI / Rust Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Isolated DB Gate (push) Has been cancelled
CI / Desktop Core (push) Has been cancelled
CI / Desktop Smoke E2E (1) (push) Has been cancelled
CI / Desktop Smoke E2E (2) (push) Has been cancelled
CI / Desktop Smoke E2E (3) (push) Has been cancelled
CI / Desktop Smoke E2E (4) (push) Has been cancelled
CI / Desktop (push) Has been cancelled
CI / Desktop E2E Relay (push) Has been cancelled
CI / Desktop E2E Integration (1/2) (push) Has been cancelled
CI / Desktop E2E Integration (2/2) (push) Has been cancelled
CI / Desktop E2E Integration (push) Has been cancelled
CI / Backend Integration (relay e2e) (push) Has been cancelled
CI / Relay E2E (push) Has been cancelled
CI / Web (push) Has been cancelled
CI / Admin Web (push) Has been cancelled
CI / Mobile (push) Has been cancelled
CI / Security (push) Has been cancelled
CI / Server Cross-Compile (push) Has been cancelled
CI / Server Cross-Compile-1 (push) Has been cancelled
CI / Windows Rust (x86_64-pc-windows-msvc) (push) Has been cancelled
CI / Desktop Build (macOS) (push) Has been cancelled
Docker image / Merge release multi-arch manifest (push) Has been cancelled
Docker image / Merge debug multi-arch manifest (push) Has been cancelled
Docker image / Publish public push gateway image (push) Has been cancelled
perf(bus): measure the posture the relay ships, and prove it took
Every Zenoh figure this repo has taken was measured with
`scouting/multicast/enabled: false` and nothing else set. Three keys the relay
pins were left at their upstream `true`, and one of them moved numbers.

`transport.shared_memory.enabled` and
`transport.shared_memory.transport_optimization.enabled` BOTH default true, and
the `eclipse-zenoh` wheel is built with the `shared-memory` feature. Verified on
this binding: with both unset, `zenoh_transport::unicast::manager` logs
`shm: Some(TransportShmConfig { .. })` and `zenoh_shm` allocates the 16 MiB pool
on the first >=3 KB put; with both false it logs `shm: None`. So every peer-mode
payload at or above the 3,072 B `message_size_threshold` -- 4 KB, 16 KB, 64 KB,
256 KB, which is the entire upper half of the crossover curve -- travelled
through POSIX shared memory, on a path the relay build cannot take at all
because `shared-memory` is not in its `zenoh` feature list.

Gossip was the second: measured with one publisher and four subscribers, gossip
autoconnect opened 24 transports where the shipped posture opens 8.

The harness now applies the relay's embedded posture key-for-key from
`bus-peer.json5`, READS EVERY KEY BACK (zenoh 1.9/1.10 accept `routing.peer.mode`
and silently drop it, so a clean insert proves nothing), prints the whole posture
once per run, and stamps a digest beside every table. A unit test pins the table
against the fixture so the two cannot diverge again.

Arms: the deployed shape is `client` against a real zenohd, so that arm runs
first and `--zenoh-session-mode` defaults to `client`; peer-direct arms are
labelled a transport floor rather than a routing path; `peer` + `--zenoh-connect`
is refused by name as the meridian-2m45 trap. `--zenoh-posture legacy-0a2` and
matrix arms J/K reproduce the old posture so the delta is measured, not argued --
the same role arm H plays for the superseded synchronous Redis publisher.

The deployed router config left `transport_optimization` unset while the tested
fixture pinned it false. It is fixed, along with two more drifts the new check
found (`listen.exit_on_failure`, `timestamping.drop_future_timestamp`), and
`daemon-config-check.sh` now runs `deploy/compose/zenoh/zenohd.json5` through the
same daemon and diffs its EFFECTIVE config against the fixture's. Differences are
declared with reasons; anything undeclared fails, and a declared difference that
no longer exists fails too. Reverting the fix reproduces exit 1.

Phase 0A.2's figures are marked, not deleted: which survive the posture change
(256 B FAIL, the sub-2 KB rows, the Redis-only arms, the Zenoh-vs-Zenoh ratios)
and which must be re-taken (the whole >=4 KB crossover, the express table above
4 KB, and the Docker-boundary reading of the peer-vs-router divergence).

No measurement was run. Host load ~30.

Signed-off-by: Joshua Belke <joshua@innovationhub-act.org>
2026-08-21 00:48:59 -04:00
..
results/0a2-20260819 perf(bus): record the first Redis-vs-Zenoh measurement, and fix the arm that made it wrong 2026-08-19 15:19:22 -04:00
RELAY_BUS_SCALING.md perf(bus): measure the posture the relay ships, and prove it took 2026-08-21 00:48:59 -04:00
relay_bus_scaling.py perf(bus): measure the posture the relay ships, and prove it took 2026-08-21 00:48:59 -04:00
run_0a2_matrix.sh perf(bus): measure the posture the relay ships, and prove it took 2026-08-21 00:48:59 -04:00
summarize_0a2.py perf(bus): record the first Redis-vs-Zenoh measurement, and fix the arm that made it wrong 2026-08-19 15:19:22 -04:00
test_relay_bus_scaling.py perf(bus): measure the posture the relay ships, and prove it took 2026-08-21 00:48:59 -04:00
zenoh_coldstart_probe.py perf(bus): measure the posture the relay ships, and prove it took 2026-08-21 00:48:59 -04:00