Test result
measured · CUBR-0092 · 2026-08-02
This is the identified cause of the largest encode/decode asymmetry in the corpus (mr 80.22x, x-ray 63.91x, sao 26.77x): the WINNING path is itself lopsided - med16 -> nested chunked base -> per-block eight-way competition at encode, against a decode that replays one scheme per block in 2.6 s. Same structural pattern as the CM2 column sweep (NEW-26), one level down. IMPORTANT DISTINCTION FOR WHOEVER IMPLEMENTS IT: unlike NEW-25 this canNOT be made byte-exact by bounding. NEW-25 was free because abandoning a candidate that already exceeded the incumbent cannot change the minimum; here the EXPENSIVE candidates are the ones that WIN, so a bound never fires on them and bounding only the losers saves ~190 s of ~1100 s rather than the ~700 s that matters. Stickiness is therefore a RATIO-COSTING preset lever: a later block where another scheme would have won gets the sticky choice instead. That cost MUST be measured, not assumed zero - the column sweep was also obviously free until it was priced at -0.71% to -4.83%. Instrumentation note: the existing per-candidate wins counter cannot answer this because it fires every time a candidate becomes the running minimum, so several candidates win per block; a FINAL: counter recording the winner OF THE BLOCK was added for this measurement. Per-class stability on exe/database/text was still running when this row was written - a scheme stable on image and unstable on text would make this a per-class preset rather than a global one, which is the shape of every other lever in this task.
[PER-CLASS RESULTS 2026-07-30] x-ray (image) FINAL:geomix 384/384 blocks; ooffice (exe) FINAL:geomix 384/384 blocks. Two classes, one answer, every block - the competition is a constant wherever it runs to completion. dickens (text) and osdb (database) produced NO per-block winner rows AT ALL, and that absence is itself a result rather than a failed measurement: on those classes cm2 establishes the incumbent first, so the deferred base candidate is bounded by NEW-25 and abandoned before a single block completes. Direct evidence of NEW-25 firing, which had not previously been observed: dickens base 0.218 s completing with 1756742 output bytes on the unbounded build versus 0.097 s and ZERO output bytes abandoned on the NEW-25 build. That is worth 0.12 s of a ~119 s encode - nothing for speed, because base was never the cost on text (0.16% share) - and must NOT be quoted as a speed result; it is mechanism confirmation only. CONSEQUENCE FOR THIS LEVER SCOPE: on image and exe the per-block rows come from the NESTED, UNBOUNDED base calls inside the winning transform container, exactly the calls NEW-25 does not and should not bound (bounding the winner would be wrong). So the sticky-selection lever is aimed specifically at the NESTED competition, and its scope is currently established for IMAGE and EXE only - text and database cannot answer the question at all while NEW-25 abandons that path.
[CORPUS CAMPAIGN EXTENSION 2026-08-01]
Nine-file evidence available before the full N=24 campaign closed:
file | class | MiB | s/MiB compress | s/MiB decompress | asymmetry
samba | code | 20.6 | 11.97 | 11.887 | 1.0x
reymont | text | 6.3 | 38.28 | 12.855 | 3.0x
mr | image | 9.5 | 41.36 | 0.688 | 60.1x
mozilla | exe | 48.8 | 44.75 | 11.886 | 3.8x
dickens | text | 9.7 | 45.86 | 14.816 | 3.1x
osdb | database | 9.6 | 53.96 | 16.296 | 3.3x
nci | database | 32.0 | 56.85 | 9.171 | 6.2x
ooffice | exe | 5.9 | 61.78 | 13.331 | 4.6x
sao | binary | 6.9 | 88.41 | 3.337 | 26.5x
Spearman(compress cost, asymmetry) = +0.58 across these nine files. This is weak-to-moderate supporting correlation, not proof of cause. The endpoints fit the proposed mechanism: samba is the cheapest encode and symmetric, while sao is the most expensive encode and strongly asymmetric. Size and type fits previously attempted on too few points were retracted; no scaling claim is made before N=24.
Decode is bimodal in the measured corpus rows:
file | class | decode MiB/s
osdb | database | 0.061
webster | text | 0.077
samba | code | 0.084
mozilla | exe | 0.084
nci | database | 0.109
mr | image | 1.46
x-ray | image | 1.30
CM2-path files occupy a 0.06-0.11 MiB/s decode band across types, while the two measured image files are around 1.4 MiB/s, with a measured 17x gap and no observations between the bands. The sharpest single point is samba: encode = 0.084 MiB/s and decode = 0.084 MiB/s to three decimals. This is one measured file where the CM2 column sweep does not fire; it is structural support for the racing-candidates mechanism, not a causal proof.
enwik8 adds the first 100 MB-scale observation: 95.4 MiB, measured 42.44 s/MiB compress (0.0236 MiB/s), 13.12 s/MiB decompress (0.0762 MiB/s), 3.23x asymmetry, archive size 19,552,678 bytes, byte-exact round-trip. Its per-byte costs remain inside the observed text band across a 19x file-size range (5.1-95.4 MiB); this is a bounded observation of no degradation for this file, not a general scaling claim. Three completed runs agree with 0.54% compress and 0.03% decompress spread.
Cause remains UNPROVEN. The decisive test is the N=24 query joining per-file encode cost to the FINAL winning candidate already recorded by the attribution instrument. Run that join after all 24 max files are durable; it is a query, not a new experiment. The sticky-selection lever remains ratio-costing, unimplemented, and must never silently change max.
[N=13 SUPERSEDING EXTENSION 2026-08-01]
This N=13 snapshot supersedes the earlier nine-file table as the latest partial view; the N=9 block is intentionally preserved as measurement history. It covers all 12 Silesia files plus enwik8. Total measured compute reported at this checkpoint: 16.7 h.
file | class | MiB | s/MiB compress | s/MiB decompress | asymmetry
samba | code | 20.6 | 11.97 | 11.891 | 1.0x
xml | text | 5.1 | 33.81 | 11.385 | 3.0x
reymont | text | 6.3 | 38.28 | 12.859 | 3.0x
x-ray | image | 8.1 | 38.72 | 0.766 | 50.6x
webster | text | 39.5 | 40.02 | 12.991 | 3.1x
mr | image | 9.5 | 41.32 | 0.690 | 59.9x
enwik8 | text | 95.4 | 42.44 | 13.126 | 3.2x
mozilla | exe | 48.8 | 44.76 | 11.890 | 3.8x
dickens | text | 9.7 | 45.85 | 14.815 | 3.1x
osdb | database | 9.6 | 53.97 | 16.310 | 3.3x
nci | database | 32.0 | 56.86 | 9.180 | 6.2x
ooffice | exe | 5.9 | 61.71 | 13.303 | 4.6x
sao | binary | 6.9 | 88.39 | 3.342 | 26.4x
The text class now has five files spanning 5.1-95.4 MiB (19x size range) with a 1.36x compress-cost spread. The ordering is not monotone in size: enwik8 is the largest and sits in the middle; xml is the smallest and cheapest. This is evidence against a simple size explanation, not a scaling claim. No corpus mean or scaling exponent is computed at N=13.
Decode bimodality persists with two image observations. In table units, image decode cost is 0.690-0.766 s/MiB (about 1.45-1.30 MiB/s); the other eleven observations are 9.18-16.31 s/MiB (about 0.109-0.061 MiB/s). The speed gap is about 12-24x with nothing measured between the bands. Samba remains the only 1.0x encode/decode equality and the cheapest encode by a 2.8x margin over xml.
Compress cost spans 7.39x from samba to sao, but only 2.61x with samba excluded: the partial distribution remains a tight band plus the one file known to skip the racing sweep. Cause remains UNPROVEN. The decisive per-file encode-cost to FINAL winning-candidate join runs as a query only after max reaches durable N=24. Tiny Canterbury files must be reported as measured and excluded from broad per-byte/corpus-shape statements where fixed overhead dominates.
Correction: the FINAL: counter was produced by a temporary instrumented build for the x-ray measurement; its output was not persisted, so the decisive test requires re-instrumenting and re-running the encoder rather than a later database query.
[N=24 COMPLETE CAMPAIGN 2026-08-02]
Campaign closure:
[2026-08-02T09:47:18Z] === END preset=web rc=0 ===
[2026-08-02T09:47:18Z] ALL PRESETS DONE
The max, balanced, and lowmem-decode presets each produced 217 journal rows across 24 files, with 120 byte-exact round-trips and 0 failures. Across all three presets this is 360 byte-exact round-trips, with zero non-zero cmp_status values and zero non-zero exit_code values.
Corpus ratios are retained from the DB/existing benchmark rather than timing journals: max 0.189007, balanced 0.189891 (+0.47%), and lowmem-decode 0.206627 (+9.32%). The journal archive_bytes/output_size_bytes fields cannot recover original input size, so a journal-derived ratio would be tautological. The +9.32% value is the corpus delta, not a per-file expectation. Per-file lowmem ratio cost ranged from +0.06% (xargs.1) to +15.70% (enwik8).
Lowmem-decode inherits the Balanced sweep and adds the table cap; it is not an additive second sweep. The measured examples are xml 2.99x -> 3.90x and samba 0.99x -> 1.27x. No decode-speed claim is made.
Measured Silesia per-file summary (Balanced ratio | Lowmem ratio | max decode RSS | lowmem decode RSS | RSS drop | lowmem ratio cost):
xml 2.99x | 3.90x | 5.574 G | 0.107 G | 51.9x | +4.20%
reymont 3.01x | 3.88x | 6.125 G | 0.111 G | 55.3x | +5.46%
dickens 2.77x | 3.55x | 10.544 G | 0.114 G | 92.7x | +8.90%
webster 2.81x | 3.13x | 10.835 G | 0.146 G | 74.0x | +14.11%
osdb 2.50x | 3.11x | 12.267 G | 0.116 G | 106.0x | +9.57%
enwik8 2.48x | 2.48x | 11.334 G | 0.216 G | 52.4x | +15.70%
sao 1.56x | 1.65x | 0.092 G | 0.093 G | 1.0x | IDENTICAL
nci 1.48x | 1.53x | 10.322 G | 0.069 G | 150.3x | +3.21%
samba 0.99x | 1.27x | 12.026 G | 0.127 G | 94.4x | +5.94%
ooffice 1.00x | 1.10x | 6.138 G | 0.111 G | 55.1x | +5.60%
mr 1.00x | 1.07x | 0.086 G | 0.086 G | 1.0x | IDENTICAL
mozilla 1.00x | 1.05x | 12.079 G | 0.164 G | 73.6x | +6.97%
x-ray 1.00x | 1.00x | 0.086 G | 0.086 G | 1.0x | IDENTICAL
Canterbury campaign observations are fixed-overhead dominated and excluded from corpus-level statements: cp.html 3.09x, lcet10.txt 3.12x, plrabn12.txt 3.09x, fields.c 2.74x, alice29.txt 2.68x, xargs.1 2.37x, asyoulik.txt 2.19x, kennedy.xls 1.23x, grammar.lsp 1.02x, ptt5 1.02x, sum 1.00x. Their RSS drops are 1.0-3.9x because tables never became large; these values do not assert an unprovided preset axis.
The measured no-change exceptions are sao, mr, and x-ray (0.086-0.093 GiB on both presets, with byte-identical archives), plus Canterbury grammar.lsp, ptt5, and sum. These are inert-cap exceptions: their table exponent never reached the cap.
Correction retained: the FINAL: counter was produced by a temporary instrumented build for the x-ray measurement; its output was not persisted, so the decisive test requires re-instrumenting and re-running the encoder rather than a later database query. The cause remains UNPROVEN.
[CUBR-0092 GATE RESULT 2026-08-02 — MEASURED, GATED, NOT SHIPPED]
The inner sticky value-stream candidate was implemented and measured, but it is not shipped. The pre-registered kill gate required at least 1.50x end-to-end encode speedup on both one representative image and one independent executable, byte-exact round-trip on every measured configuration, no target output growth above 1 percent, and at most plus 0.50 percent relative ratio cost on the 24-file corpus.
Fixed stand: dev-ai, CPUs 0-15, CUBR_THREADS=16, one pinned baseline and candidate run per representative file. Baseline binary SHA256 d2ee91bf8b2eec3c144183ebde06fb4e72bae5c89a96d23be8bd1e08fd60dd19; candidate binary SHA256 a9fec5a2a1c74d2337581afc28eae52a0225ee5d590033bdf8100a9191e27374.
- x-ray: baseline 131.10 s; candidate 98.67 s; 1.328671x, recorded as 1.33x. Compressed output was 3,637,036 bytes for both. Round-trip PASS.
- ooffice: baseline 222.34 s; candidate 211.61 s; 1.050706x, recorded as 1.05x. Compressed output was 1,763,460 bytes for both. Round-trip PASS.
Both speed cells miss the pre-registered 1.50x threshold. Output growth was zero on both measured representatives, but the corpus cap was not adjudicated because the newer gate stopped the 24-file sweep after 12 baseline rows and before any candidate corpus row. No verdict is claimed for the other corpus files. The speed-gate miss alone kills the ship decision.
Encode RSS observations: x-ray baseline 1,746,428 KiB versus candidate 1,542,056 KiB, a 11.70 percent decrease; ooffice baseline 6,662,864 KiB versus candidate 7,340,856 KiB, a 10.18 percent increase. With one pinned run per file, these observations cannot distinguish measurement noise from retained candidate state. The cause remains unresolved, so no memory benefit is claimed; the asymmetric ooffice increase is an additional reason not to ship.
Evidence is preserved at /root/cubr0092-inner-sticky-20260802T155722Z on dev-ai, including the raw representative timing files and the intentionally aborted partial corpus sweep. Source candidate remains uncommitted and unmerged; no PR, deploy, or production claim follows from this measurement.
[CUBR-0092 EVIDENCE CORRECTION 2026-08-02]
The original representative.tsv was defective: every enc_rss_kib cell contained the elapsed value followed by the literal maxrss_kib token. It has been renamed representative.raw.tsv so the defect remains inspectable, and representative.tsv was regenerated from the authoritative timing files.
The candidate_ooffice encode cell has two runs, not one. The first run produced 217.44 seconds; its candidate_ooffice output and timing files were born at 18:07:10 +0200, and the pre-existing 77.74-second decode and original TSV row were written before the later overwrite. A second encode overwrote the output and .time files at 18:12:11 +0200; its stdout reports time_ms=211496 and its authoritative .time reports elapsed_s=211.61 maxrss_kib=7340856. Therefore 211.61 seconds is the selected final measurement, while the candidate_ooffice encode cell is n=2 and 217.44 is retained as prior-run evidence. The final 211.61-second blob was decoded separately in candidate_ooffice.final.dec.time at 78.21 seconds and byte-compared to /root/corpus-full/silesia/ooffice with decode_rc=0 and cmp_rc=0. The old baseline_ooffice decode value 79.07 was also stale; baseline_ooffice.dec.time is authoritative at 84.66 and the corrected TSV uses it.
Corrected encode RSS values are numeric values from the .enc.time files: x-ray baseline 1746428 KiB, x-ray candidate 1542056 KiB, ooffice baseline 6662864 KiB, and ooffice candidate 7340856 KiB.
These timings were measured on dev-ai (64 cores, pinned 0-15), not on the campaign stand 162.55.81.5 (16 cores). They are internally comparable baseline versus candidate on dev-ai and must not be compared against any N=24 campaign figure. The gate verdict remains unchanged: both selected speed cells miss 1.50x.
[CUBR-0092 RESOLUTION CAVEAT 2026-08-02] The candidate ooffice encode runs were 211.61 s and 217.44 s: spread 5.83 s, versus 10.73 s from the 222.34 s baseline to the selected 211.61 s candidate. Therefore the 1.05x executable case is not distinguishable from noise at n=2 versus n=1. The x-ray comparison is n=1 on each side, so 1.33x is a single-run comparison. Verdict unchanged: the 1.50x gate was missed; do not rerun to tighten this dead lever.
[PROF FOUND 2026-08-04]
The committed CUBRIM_PROFILE=1 instrument was re-run on the NEW-29 Silesia corpus rather than the web corpus, using two 2 MiB representative slices. The profiler header's caveat is binding: nested candidates double-count and the table is attribution, not a partition; ordinary wins are running-minimum events. Only FINAL rows answer the final-per-block question.
Evidence commit: 6f281f360b9670f992976b1e248b41343a7c5bd3. Measured binary SHA-256: 0a327d55e6d549d4c742a4ca0e098bbc5e02946311893ccddaacc898fd3fd372. Measured source commit: 3a59903910aa526a5d8e1633465f784fbfb4fc65. prof.rs blob SHA-256: 0e6c3eaf2a7b8102df3dcd1837216df4022d662c24e578acd2a4fb58fac727a7. codec.rs blob SHA-256: ff1c27faaae9739c29a40d13582edab43558774961d55e91f2e428edaaf3fa54. Full Silesia manifest SHA-256: d9203058b86b39f94f20b29603a89af5229619b06c78741c64d7098730c39647. Host nproc=16; processes pinned to CPUs 0-3; campaign host 162.55.81.5 untouched.
file | class | full SHA-256 | slice SHA-256 | compressed | ratio | encode wall | decode wall | RT | FINAL
x-ray.2m | image | 7de9fce1405dc44ae5e6813ed21cd5751e761bd4265655a005d39b9685d1c9ad | 9bfd1c5321dbd4dcec1cfb037189ef78ceb7052ce8647086b70b0e1cb401aab3 | 878363 | 0.418836 | 104.518 s | 1.661 s | PASS | geomix 384/384
ooffice.2m | executable | e7ee013880d34dd5208283d0d3d91b07f442e067454276095ded14f322a656eb | 5041e86f07bf17d7a8b3b0ab496a1b6413256399848709f8be543bbdca12de09 | 677605 | 0.323107 | 142.805 s | 23.912 s | PASS | geomix 384/384
Both raw profiler tables contain FINAL:geomix with 384 final blocks and no other FINAL row. Cause is proven for these measured representative image and executable slices: the inner value-scheme rail recomputes a constant final answer. This does not claim all Silesia files, an N=12/N=24 aggregate, or any speed/ratio benefit from a sticky lever. NEW-29 remains closed and its CUBR-0092 KILLED verdict is unchanged. Evidence report and raw tables: documentation/ephemeral/research/CUBR-PROFFOUND-20260804.md and its raw/ directory.