Experiment benchmarks alpha phase1 native run 02 - kmosoti/FabricO11y GitHub Wiki
Historical report imported 2026-10-10 from
docs/experiments/benchmarks/alpha-phase1-native-run-02.md. Original SHA-256:d4241dad72358c74abec3b61db9dffa09e6d2ed3ba56988d756cbb34494d07dc. Measurements and outcomes retain their stated revisions. Links and local environment labels are normalized;$FABRIC_DATAis the mounted experiment drive. See evidence policy.
Phase-1 native node: post-repair run 02
Status: three registered trials passed on 2026-09-27 on the final phase-1 binaries (plan step P1.4). This replaces run 01 as the phase-1 native evidence, because run 01 predates the review repairs, the Unicode gap fix, the crash-recovery change and the lock fix. It is not an ACK, freshness, server, fleet or installation result.
Method and environment
Unchanged from the registered protocol and run 01: three seeds, 15 s warmup plus 120 s measured, 2 offered newline logs/s of exactly 512 body bytes, a 15 s metric interval, sequential trials under the frozen runner with 180 s, 300 MiB and 1 MiB limits. The runner and native harness SHA-256 values equal the frozen phase-0 and run-01 values, so the harness did not change. Environment: Debian GNU/Linux 13, WSL2 kernel 6.18.33.2-microsoft-standard-WSL2, x86_64, 12 logical CPUs, target filesystem reported as ext2/ext3, Rust 1.98.0. The binaries were built from commit c51d3a8a38151f0fe2a067415f312a18ca545622 with cargo build --offline --locked --release --bins --example alpha_native_dump, exit 0.
| Artifact | SHA-256 |
|---|---|
target/release/fabric-node |
32ae80bc49cdba2cdf3f70dfd6b06ec06b09e5c68347677af9e534cc67a64936 |
target/release/fabricctl |
1f6a60a3a3377fd26ce3899911579060704b78a1d098f41cabfad911d7a245a0 |
target/release/examples/alpha_native_dump |
6c93ea5301635267bd14dfa31c80288d89ff88f759bf2defd89ba02b281e00e9 |
tools/alpha/native_phase1.py |
b503193fd3b8b930bcf33223af6032d3ce47fce1e4fe6b22f396b705826463e8 |
tools/alpha/runner.py |
2425e95028edd13a4a43e49fc99904ce695b0b98aafe6d277124b1b169b5c49d |
For each N=1,2,3 the command was:
python3 -B tools/alpha/runner.py --out "target/alpha-native-run02-seed${N}" --duration-s 180 --disk-bytes 314572800 --max-output-bytes 1048576 -- python3 -B "$PWD/tools/alpha/native_phase1.py" --seed "0xA11FA00${N}" --node-bin "$PWD/target/release/fabric-node" --ctl-bin "$PWD/target/release/fabricctl" --dump-bin "$PWD/target/release/examples/alpha_native_dump"
All three runner invocations exited 0 with passed=true and no stop reason. The compact summaries, runner results and hashes (local evidence omitted from stage) are tracked.
Results
Each trial offered 270 lines and 138,510 source bytes, and committed 270 log records. The persisted log bodies' SHA-256 equals the source SHA-256 for every seed, and equals the run-01 source hash for the same seed. The host emitted 750 metric points across ten 15 s samples.
| Seed | Offered/committed logs | Native CPU s (measured window) | Node VmHWM KiB | Restart ms | Spool amplification | Runner peak live bytes |
|---|---|---|---|---|---|---|
0xA11FA001 |
270/270 | 0.04 | 2624 | 40.0 | 1.006615 | 417270 |
0xA11FA002 |
270/270 | 0.04 | 2600 | 21.5 | 1.006615 | 417270 |
0xA11FA003 |
270/270 | 0.04 | 2736 | 28.0 | 1.006615 | 417266 |
The highest VmHWM is 2736 KiB, below the registered 64 MiB gate. Measured CPU rose from at most 0.01 s in run 01 to 0.04 s. The likely cause is the new run loop, which wakes every 100 ms to honour a stop request; this was not isolated. Clock ticks resolve 0.01 s here. Maximum source schedule lag was 9.3 ms.
Limits
This is one native process on one host. It does not measure network delivery, ACK latency, observation-to-query freshness or fleet tiers. The crash-recovery behavior is covered separately by the kill probe and unit tests recorded in ADR-0011.