Experiment benchmarks coupled completion run 01 - kmosoti/FabricO11y GitHub Wiki
Historical report imported 2026-10-10 from
docs/experiments/benchmarks/coupled-completion-run-01.md. Original SHA-256:60b63cb5e31051939cdfb40436b24be707b1d496f04ee66305a5de8d3e5d01ff. Measurements and outcomes retain their stated revisions. Links and local environment labels are normalized;$FABRIC_DATAis the mounted experiment drive. See evidence policy.
Coupled labs completion execution
Status: admitted work recorded and verified; larger service cells remain deferred by evidence admission.
Owner authorized implementation with “Proceed”. The completion plan (local checkout reference docs/experiments/benchmarks/coupled-completion-plan.md; not present at origin/main)
and dispatch (local checkout reference docs/experiments/benchmarks/coupled-completion-dispatch-protocol.md; not present at origin/main) retain the existing frontier,
20GiB cgroup/no-swap envelope and mounted data-drive scratch. No qualification or
production overlap enablement is part of this run.
Operations: availability and pruning
The availability companion independently preserves producer-derived retained
metadata while excluding only missing projections. The original whole-record
Python oracle is unchanged. Nine checker tests passed in
catalog-coupled-o6-checker-01; partial projection loss passed six Scan/Walk
complete chains in catalog-coupled-o6-projection-02. Its evidence was moved
byte-preservingly from Cargo's crate-relative directory to the intended absolute
root; path correction (local checkout reference docs/experiments/benchmarks/coupled-availability-path-protocol.md; not present at origin/main) records that fix.
Raw-table loss reproduced an actual defect:48 readable log rows were returned
with complete=true after batches.parquet disappeared. Raw-red01 exited101.
Implementation commit73447a2 checks raw presence, size, schema and footer row
count before claiming completeness, preserving readable projections/metadata.
Raw-fixed01 passed six chains. Integrity01 passed24 chains covering truncation,
same-size damaged footer, wrong valid schema and wrong manifest row count across
logs/metrics/spans and both plans. Source-errors01 passed the selected missing-gap
incompleteness and missing-Manifest interrupted-source tests. These checks do not
establish arbitrary page-corruption detection: no whole-file checksum or full raw
page decode runs on every query. The added footer-open cost has not yet been
isolated in a performance comparison. Companion raw-loss grading is scoped to matching,
nonempty queries. See availability decision (local checkout reference docs/experiments/benchmarks/coupled-availability-protocol.md; not present at origin/main),
counterexample registry and
retained evidence (local evidence omitted from stage).
O7 now decodes actual physical groups and independently checks producer identities,
order and conservative bounds. The first native fixture failed because64 large
rows exceeded the Batch limit; its replacement uses32 rows/Batch and35 Batches.
Native02 passed12 chains. The subsequent empty-window discriminator and selected
8/16/32MiB variants each passed14 chains (42 total):1100 rows,16KiB bodies, late
arrival, equal timestamps across groups and an empty window admitted by a broad
group bound. Every final manifest file entry (length, rows, SHA256) agrees across
variants, verified by catalog-coupled-o7-variant-compare-01.
The checker rejected omitted admitted groups, narrowed bounds, missing groups
and changed content; unchanged query oracle also rejected incomplete/duplicated
chains. Actual group sizes are508/508/84. The empty internal window matches zero
rows while conservatively admitting508. This is footer-bound soundness, not
measured query IO or proof for every signal/workload. Historical C2 physical-layout
equality remains failed. Prospective discriminator (local checkout reference docs/experiments/benchmarks/coupled-pruning-false-positive-protocol.md; not present at origin/main)
and individual catalog-coupled-o7-r{8,16,32}-01 datasets retain native binaries,
producer records, page chains, SHA-checked gzip archives and verdicts.
Collection: one-successor overlap
The experimental Rust method keeps Spool, cursors, metric history and ACK persistence on the main thread. A scoped worker sends immutable Batch N; at most N+1 can be committed during its wait. Retry/backlog cannot prepare N+2, and an ACK cannot be legitimized by a newly prepared unsent successor. Production CLI stays serial; trace listeners are outside this candidate's scope.
Six deterministic controls passed in controls02. Controls01 failed because its
6000-byte line was correctly skipped by the4096-byte source limit. Three valid
2000-byte lines now establish the full-Spool precondition; original ACK/cursor
assertions remain. Three TLS harness attempts were retained: missing serve, a
too-short fixture credential, and an invalid limit field on a Rate request.
These are harness failures; only pair1-04 completed the registered matched pilot.
Frozen native executables remained identical through those driver corrections.
Pair1-04 (local evidence omitted from stage) used one actual node per arm,250 deterministic512-byte offered log bodies over15seconds,20seconds of node operation and a matched50ms delayed TLS Batch response. Independent custody/body checks and three final logs/metrics/rate chains per arm passed, with no retries, full ACK drain and explicit service cgroups (node64MiB/one CPU, server384MiB/two CPUs, no swap). Parent131.9MiB peak includes harness/cache; it is not node RSS.
| Observed quantity | Serial | One-successor overlap |
|---|---|---|
| Accepted source logs | 250 | 250 |
| Committed and ACKed Batches | 151 | 153 |
| Encoded Batch bytes | 248153 | 249154 |
| Source-to-client-ACK median | 67.33ms | 67.75ms |
| Source-to-client-ACK maximum | 92.28ms | 134.13ms |
| Post-Spool-to-client-ACK median | 58.92ms | 59.17ms |
| Node CPU seconds | 1.019565 | 1.039365 |
| Server CPU seconds | 0.590973 | 0.585832 |
| Node cgroup memory peak | 3.56MiB | 4.01MiB |
| Server cgroup memory peak | 7.05MiB | 7.10MiB |
| Node CPU seconds per logical log MiB | 8.3523 | 8.5145 |
| Successor commits before previous ACK | 0/150 | 2/152 |
Both service groups recorded zero memory-high/max/OOM events and zero CPU quota throttling. Cgroup peaks differ from RSS: shared executable/cache pages can be charged to the parent, where the harness unpacked binaries. Five-second per-PID RSS/HWM and IO samples are retained separately. Source acceptance was250/250, with128000 logical log bytes in each arm and no refused/retried Batches.
The one pair shows no useful light-load benefit: median latency+0.63%, node CPU/accepted-byte+1.94%. Only2 successors actually overlapped. This does not refute an overlap benefit under backlog, establish a repeatable regression or support a throughput/p99 claim. The next useful discriminator is a bounded backlog large enough to keep preparation busy, before multiplying this workload across20 nodes. No additional burst/small cell is represented as complete.
Visibility polling retained every answer and first-seen interval at100ms cadence.
ACK-to-first-seen upper differences ranged up to59.19ms serial/57.07ms overlap;
119/127 negative values mean data was visible before the delayed ACK. These are
interval observations, not an instantaneous freshness or30second guarantee.
Detailed controls/metrics are in the pilot protocol (local checkout reference docs/experiments/benchmarks/coupled-overlap-protocol.md; not present at origin/main)
and per-arm result files. CPU and RSS/HWM samples, IO and memory pressure remain
in the coordinator's resources ledger; sampling does not equal exact native peaks.
Capacity preparation and admission
The explicit compile selector accepts8/16/32MiB and defaults to16MiB. The same
spilling/invalid-value/oversized-row controls passed under all three selected
builds in catalog-coupled-c5-selectors-01. The cap is a per-signal resident
estimate, not a whole-builder heap ceiling. O7's finite output check passed above.
The proposed service adapter holds real pending journals until measurement starts,
observes .building-* concurrency and preserves query-on/off schedules. A
reversible evidence codec preserves original JSON framing, order, timestamps and
actual Batch hashes while regenerating only verified deterministic body hashes.
Its archive, measurement, custody and cadence controls passed in
catalog-coupled-c5-controls-01 (exit0). The exact source-input projection passed
count/hash readbacks for300000 lines and measured111046844 compressed bytes,
111083520 allocated bytes (105.94MiB), before seed/journal/Spool/receipt costs.
Projection01 exited0 and removed its owned temporary files. Admission01 exited0
for completing the assessment, explicitly admitted=false; no native service
child started. See projection (local evidence omitted from stage) and
admission (local evidence omitted from stage). The no-query
control, four query grid cells and32MiB holdout remain unrun. This storage result
is specific to per-node gzip preservation, not a lower bound for every codec. C5 registration (local checkout reference docs/experiments/benchmarks/coupled-c5-protocol.md; not present at origin/main) leaves the20-node native
grid conditional on preserving failure evidence within its20MiB assignment.
Containment, cleanup and remaining work
Every workload ran through resource_group.py and the serial completion launcher;
commands, exits, working-tree sources/diffs and cgroup CPU/memory/IO observations
are retained under coordinator receipts (local evidence omitted from stage).
All temporary paths use the mounted data drive. Failed scratch is archived with
file-by-file byte verification before deletion. The catalog cleanup protocol (local checkout reference docs/experiments/benchmarks/coupled-cleanup-protocol.md; not present at origin/main)
uses the already reconciled aggregate/query/capacity assignments; the historical
legacy-cap failures are not regraded. Shared caches remain, and no remote host was
loaded. The unchanged tighter aggregate ceiling is1,894,879,232bytes; the final
snapshot includes accumulated failed pilot binaries and receipt overhead.
C4 and Q4 remain closed at their earlier inconclusive/no-nomination outcomes.
C5 input preservation/admission is complete with a rejected native dispatch as
recorded above. Fast01 exited1 (15 gates passed, workspace tests and Clippy failed).
Its legacy raw replay test still expected complete raw custody through the old
whole-record oracle; the companion routing now retains all five original queries
in both plans and the replay-error assertion. A nested overlap-test conditional
was collapsed for Clippy. The retry registration (local checkout reference docs/experiments/benchmarks/coupled-completion-regression-retry-protocol.md; not present at origin/main)
records the separate fixture decision. Original failure files and verification
receipts were preserved before Fast02. Fast02 exited0 in255.932seconds: all17
fast gates passed, including the complete workspace tests and Clippy. Its cgroup
peak was0.87GiB with no swap, and owned scratch was removed.
The remaining manual documentation/audit command is
resource_group.py -> run_job catalog-coupled-completion-closeout-01 -> coupled_admit --reserve-mib 1 -> coupled_closeout.py,
verification stage120s. The wrapper copies exact fast receipts, runs the manual
documentation profile, checks this completion's failed scratch is archived/removed,
and reconciles unchanged evidence caps. No further native performance cell is admitted. No default optimization or
alpha qualification follows from this finite laboratory run.
Final closeout
catalog-coupled-completion-closeout-01 exited0 in27.533seconds.
Manual documentation links/syntax, checker probes and hook tests all passed; this
did not re-enable automatic Bun hooks or CI. Exact fast receipts were copied and
byte-checked. The audit found all39 preceding completion jobs terminal and their
owned failed scratch archived/removed; this final job also removed its scratch.
Shared caches and unrelated historical failure evidence remain. No remote tests
ran. These final receipt-only status updates follow that documentation check.
At the admission wrapper's last snapshot, aggregate allocated evidence was 1,893,703,680bytes versus1,894,879,232; capacity847,093,760 versus872,415,232; query upper1,046,609,920 versus1,073,741,824. Final receipt/log blocks follow the snapshot; roughly1.1MiB headroom cannot admit another native campaign. Historical 768MiB capacity violation remains. The shared frontier used10611.680 of14400seconds (3788.320remaining); storage admission, rather than wall-time or the20GiB memory envelope, limits further dispatch.
The completed scope is availability repair, finite pruning/output preservation,
selector/archival controls and a correct light-load overlap pilot. C5's six native
cells and O8's small/backlogged follow-up remain unrun. A scoped preservation plan
that fits measured failure costs is needed before restarting them. The tested
working tree passes all17 fast gates; no release or deployment qualification is
claimed. See the final audit (local evidence omitted from stage)
and queue (local checkout reference docs/experiments/benchmarks/coupled-lab-queue.json; not present at origin/main).
Continuation
Owner requested continuation. Three existing labs prepared a lossless evidence
reclamation, a backlog discriminator and a small-profile pair. Root reviewed,
registered and serialized execution; lab agents did not run competing workloads.
Reclamation registration (local checkout reference docs/experiments/benchmarks/coupled-reclamation-protocol.md; not present at origin/main), its
retry (local checkout reference docs/experiments/benchmarks/coupled-reclamation-retry-protocol.md; not present at origin/main), and the
backlog (local checkout reference docs/experiments/benchmarks/coupled-overlap-backlog-protocol.md; not present at origin/main)/small (local checkout reference docs/experiments/benchmarks/coupled-overlap-small-protocol.md; not present at origin/main)
fixtures preceded their respective execution. Aggregate/query/capacity ceilings
and the14400-second frontier were not increased.
resource_group.py -> coupled_reclaim.py reclaim01 exited1 at180.905seconds,
after147 exact diff and1094 decoded-gzip hardlink replacements. All1241 had
matching durable prepared/replaced receipts. The timeout remains failed.
Reclaim02 exited0 in19.106seconds, found no additional replacements necessary,
and finished the inventory. Every path remains; gzip representation changes have
old/new compressed hashes and exact decoded comparisons. Changed payload,
truncated gzip, missing canonical and symlink controls rejected. Frozen binaries
and failure archives were not compacted. Net allocated aggregate savings between
reclaim01's before and reclaim02's after snapshots were123678720bytes
(117.95MiB), including transformation-receipt overhead. Capacity saved101089280
bytes; conservatively assigned query/coordination saved22589440. Later experiment
receipts consume headroom again. Historical overages retain their original result.
Both new native commands used the existing frozen node/server/dump binaries, actual HTTPS delivery, delayed ACK relay, real Spools and recovered raw custody. Both exact source sets were fully ACKed with no normal-trial retries; original query oracle graded six complete chains per pair and rejected omissions and duplicate rows. Source, producer/recovery, requests, query pages, clocks, CPU, memory/events, IO and sampled RSS/Spool sizes are retained.
| Fixture, serial / overlap | Backlog pair | Small pair |
|---|---|---|
| Logs per arm | 512 /512 | 25000 /25000 across20nodes |
| ACKed Batches | 4 /4 | 3031 /3035 |
| Source-to-ACK median | 248.323 /276.267ms | 86.445 /87.035ms |
| Post-Spool-to-ACK median | 72.889 /115.669ms | 74.983 /75.527ms |
| Actually prepared before prior ACK | 0/3 /2/3 | 0/3011 /35/3015 |
| Instrumented node CPU | 4.145 /4.214s | 54.055 /53.911s across20nodes |
Backlog execution catalog-overlap-backlog-pair1-01 exited0 in48.110seconds,
parent cgroup peak218.9MiB. Small execution catalog-overlap-small-pair1-01
exited0 in60.434seconds, parent peak615.8MiB. No swap/OOM was observed. Service
maxima remained384MiB/server64MiB/node for backlog and3GiB/server256MiB/node
for small, beneath the20GiB parent. Small sampled server RSS was42.20/41.40MiB;
its service cgroup peaks57.46/56.46MiB are a different metric. Small offered
1000/3000/1000logs/s for three5-second phases, then quiet drain. This is an exact
fixed-demand screen, not sustained capacity. Timestamp-derived Spool/ACK
acceptance bins are retained separately in the new closeout, including metrics
Batches and before/after offer windows.
There is a useful causal distinction: backlog source-to-Spool median fell from
170.160 to64.131ms while source-to-ACK worsened. Earlier durable preparation
creates an earlier queued successor; it does not by itself accelerate the later
send. The small pair scarcely exercised preparation (1.16% of transitions).
Neither median ACK result supports promotion; one pair cannot establish a stable
regression or speedup. CPU measures the instrumented example. It calls
Spool::inspect every loop, decoding/validating retained frames before discarding
already-recorded sequences, then sleeps5ms. Actual small resource samples put
34.11/34.31 node CPU-seconds in the final approximately4.2 quiet seconds,
about63% of totals. Repeated inspection is a plausible major cause; attributing
all quiet CPU to it requires ablation. Synchronous ledger hex rendering is also
on the critical path. A separately registered observer-cost ablation is the
highest-information follow-up before another demand increase.
All60 small visibility sentinels were seen. Their maximum ACK-to-observed-visible upper bounds were3.551/3.551seconds;60 round-robin polls spaced at least50ms plus request time naturally produce a roughly3-second revisit interval. These bounds do not measure actual server visibility latency or visibility of every unpolled row. Backlog covered all512 records and had negative differences where query visibility preceded the deliberately delayed ACK. No30-second freshness promise or alpha qualification follows.
catalog-coupled-continuation-cleanup-01 exited0 in20.519seconds, preserving and
byte-verifying reclaim01's retained launcher scratch before deletion. Its inner
control scratch was already removed by the failed helper. Both native pairs
removed their owned scratch after grading; no remote workload ran. C5 review
remains read-only: full-state preservation and lifecycle findings (local checkout reference docs/experiments/benchmarks/coupled-c5-preservation-review.md; not present at origin/main).
Its no-query control, four query grid cells and32MiB holdout remain unrun;
reclaimed duplicate objects do not establish the original20MiB preservation
bound. C4/Q4 remain closed at their historical outcomes. New independent
transformation readbacks, manual docs, syntax, launcher receipts and inventory
ran in catalog-coupled-continuation-closeout-01: exit1 in31.069seconds.
All1241 readbacks and changed-hash control succeeded; archived byte-exact
protocol copies had two broken relative links. Checker probes and hook tests
passed. Closeout retry registration (local checkout reference docs/experiments/benchmarks/coupled-continuation-closeout-retry-protocol.md; not present at origin/main)
preserves those source copies and adds exact context files, with no check waiver.
Cleanup02 exited1 in15.014seconds before any deletion: rearchiving the failed
audit's79.5MB Bun runtime exceeded prospective query evidence room. The exact
runtime was already preserved in a historical failure archive. A
new reference-preservation registration (local checkout reference docs/experiments/benchmarks/coupled-bun-reference-preservation-protocol.md; not present at origin/main)
preceded catalog-coupled-bun-preserve-01, exit0 in16.015seconds. It rejected
changed-source/missing-member controls, verified full archive and payload hashes,
compared all source/member bytes, persisted a complete source-manifest reference,
rechecked originals and inactivity, then removed the owned failure root. This
avoids duplicating the same runtime; unknown failure bytes are not excluded.
Cleanup03 preserves cleanup02's own retained scratch. Closeout02 independently
checks the canonical runtime archive/reference alongside transformations and
reruns documentation. Original failed receipts and manual-check receipts remain;
closeout02 subsequently exited0 in31.538seconds. All1241 transformation
readbacks, canonical archive/member/source-manifest verification, changed-hash
control, Python syntax and manual documentation/checker-probe/hook checks
succeeded. Its nine preceding continuation jobs were terminal, inactive, and
their owned scratch removed with preservation checks. Its own launcher receipt
also reports temporary removal and no retained failure root. No automatic Bun
hook or CI was enabled. The protocol-context copies retain exact original bytes.
Timestamp-derived small acceptance bins in the final readback report (local evidence omitted from stage) separate Spool commit from client ACK. The5–10s peak slices recorded202.0/202.6 durable Batches/s and202.0/206.6ACKed Batches/s serial/overlap; associated log ACK rates were2999/3020rows/s. Overlap's boundary spillover accounts for the apparent rate above3000, while all totals remain25000. These are finite slice averages with metrics Batches included, not sustainable throughput. All raw clocks remain available for a different retrospective slice.
Final helper inventory before its last receipt/log blocks: aggregate1795559424 allocated bytes below1894879232, capacity746004480 below872415232, and query upper1049554944 below1073741824. Later admission output measured aggregate 1795579904/query1049575424. Capacity remains the same. The frontier now records 11054.909seconds consumed of14400 (3345.091remaining); no budget was reset. These are current snapshots, not historical capacity recertification. C5's full failed-state preservation and lifecycle prerequisites remain unresolved; the original six service cells were not executed. This final receipt/status entry follows the successful documentation run; no new implementation followed.