Experiment benchmarks catalog coverage findings - kmosoti/FabricO11y GitHub Wiki
Historical report imported 2026-10-10 from
docs/experiments/benchmarks/catalog-coverage-findings.md. Original SHA-256:a74c9b1627ca3b5782ffbc87ee2c7ef5c9f108cc3434077b6c437793ce375eeb. Measurements and outcomes retain their stated revisions. Links and local environment labels are normalized;$FABRIC_DATAis the mounted experiment drive. See evidence policy.
Catalog coverage fixture findings
Status: three registered fixture tests passed, bounded to existing storage
behavior. Protocol (local checkout reference docs/experiments/benchmarks/catalog-coverage-protocol.md; not present at origin/main),
command receipt (local evidence omitted from stage),
test transcript (local evidence omitted from stage)
and numbered oracle artifacts (local evidence omitted from stage)
are the evidence. The receipt identifies revision
8e8351b798b1695ff0f924917f4461b4cc59236f plus captured working-tree source/diff;
this is not a passing assertion about later revisions.
Executed through the resource launcher and serialized coordinator:
cargo test --offline --locked -p fabric-server --test catalog_coverage -- --test-threads=1 --nocapture.
Command exit 0, job duration 48.330925693 seconds; transcript reports
three passed, zero failed/ignored and 42.35 seconds inside the test target.
No new workload was executed to write this findings note.
Oracle artifact audit
Read-only inspection found 425 numbered calls: 422 expected passes with
exit 0 and passed=true; three expected rejections with exit 1 and
passed=false. Every call has ledger/query/pages/context/stdout/stderr/exit files.
All three fixture origins record seed 0xCA7A10A1.
| Population | Calls / outcomes |
|---|---|
| Active first-four and all-eight | 60 accepted: 15 queries per stage/plan |
| Reused active before rotation | 30 accepted |
| Pending, published/unreclaimed, reclaimed; fresh and reused History | 180 accepted: 15 per stage/plan/lifetime mode |
| Old first-four snapshot continued after late append | 2 accepted: Scan and Walk |
| Missing, malformed and unauthenticated zero-bit filter | 90 accepted: 15 per variant/plan |
| Before/after actual age retention | 60 accepted: 15 per stage/plan |
| Dropped row, duplicated row, authenticated zero-bit filter | 3 rejected |
Rejected controls contain 49 ROW-DROPPED violations in total (one removed row
and 48 hidden needle rows), one ROW-DUPLICATED and one PAGE-LIMIT violation.
Thus the duplicate control is detected for duplication as well as page overflow.
Malformed numeric bounds and IO-error/empty confusion controls were not present.
Gone, exact replay bytes/multiplicity and publication-before-reclaim are Rust
assertions in the passing tests; they are not separate oracle calls.
What is supported and what remains open
On three nodes/eight groups, real committed active and pending journals and a published Segment coexisting with its unreclaimed journal returned exact full chains despite late timestamps and equal-time node ties. Actual Store/sealer reclaim preserved exact raw custody. Reused readers crossed these transitions; old page tokens remained snapshot-bound after append and became Gone after logical retention. Optional-filter fallback remained exact; the oracle rejected a semantically lying filter even when its manifest digest authenticated it.
These are sequential cuts selecting O1 and parts of O2/O3, not concurrent publication/reclaim schedules or a new catalog implementation. No handle-memory bound, Rust lifetime guarantee across unlink, all-three-source coexistence, malformed numeric bound safety, physical power-loss or operating capacity claim follows. The missing-table availability/oracle mismatch remains separately failed; this run changes no oracle and does not close that trust-boundary design.
Whole-job cgroup peak was 1,141,710,848 bytes (about 1.063 GiB), including compilation, graders and page cache; no OOM events or swap were recorded. Sampled scratch peak was 17,879,116 bytes; archived oracle evidence totals 26,959,813 bytes, within 32 MiB. Successful scratch was removed and no descendants needed termination. Shared build cache remains. Peak sampling can miss transient scratch usage; these observations establish containment/cleanup for this job, not product bounds.
Follow-up catalog-mixed-sources-01 failed (Cargo exit 101): directory enumeration
returned labels [3,1] while the fixture asserted [1,3]. The protocol requires
membership, not filesystem iteration order. The fixture now sorts labels before
comparison; production is unchanged. Root later byte-verified its archive and
removed owned failure scratch; fresh retry results do not replace this failure.