Skip to content

docs(rfc-0011): A1 re-scope — template-mining compression is logical, not byte-level - #193

Merged
jensholdgaard merged 1 commit into
mainfrom
docs/rfc0011-a1-rescope
Jun 13, 2026
Merged

docs(rfc-0011): A1 re-scope — template-mining compression is logical, not byte-level#193
jensholdgaard merged 1 commit into
mainfrom
docs/rfc0011-a1-rescope

Conversation

@jensholdgaard

@jensholdgaard jensholdgaard commented Jun 13, 2026

Copy link
Copy Markdown
Owner

What

A tuning RFC (benchmarks.md §7 escalation path) that reconciles the A1 thesis gate with the evidence from the bigger-corpus investigation, and re-scopes RFC 0001's path to validated. Docs-only.

The finding

A1 ("ourios on-disk bytes ≥ 3× smaller than zstd-19 over raw") had only ever been measured on the OTel-Demo corpus class (best 0.829×). I ran it on LogHub HDFS_v1 — 11.2M lines, the maximally-templated corpus, the single best case for the "template mining → 50–200× compression" premise:

corpus ourios zstd-19 A1 delta verdict
OTel-Demo (~1 GB) ~25× ~32× 0.829× FAIL
HDFS_v1 (11.2M lines) 8.3× 16.0× 0.516× FAIL (worse)

It fails harder on the best case. Mechanism: the more templated the corpus, the more completely monolithic zstd-19 captures its redundancy in one window (16×); template mining's extracted params (block IDs, timestamps, IPs) are high-cardinality columns that don't compress as well, and columnar Parquet adds framing that's the price of queryability. The best case for template mining is the best case for the byte codec it's measured against — so ≥ 3× over zstd cannot hold on any realistic log corpus.

The decision (maintainer-chosen: tuning RFC)

  • A1 → diagnostic, not gating. Still computed + recorded (the columnar queryability premium; a codec-regression guard), but a delta < 3.0× no longer blocks any RFC's validated.
  • Template mining's compression value is logical / query-pruning, captured by B1/B2 (RFC 0007, already validated) — not on-disk bytes.
  • RFC 0001's validated thesis gates become C1 + C2, both of which PASS on representative HDFS_v1 (same run): C1 = 1.000000 reconstruction (11,175,578 rows, 51 lossy); C2 = 40-template plateau at 11.2M lines with the formal gate applying (≥ 1 M, not abstaining as on the sub-1M OTel runs).

What this PR does vs. defers

  • Does: adds RFC 0011 (drafted); marks A1 diagnostic in the §7 gate table; records the HDFS A1/C1/C2 run in a new §9.5 (local/unknown hardware — clearly diagnostic, not the authoritative baseline); re-scopes RFC 0001's status-note validated path; SUMMARY nav.
  • Defers (maintainer's): accepting RFC 0011; flipping RFC 0001 → validated (gated on RFC 0011 acceptance + an authoritative baseline-8vcpu-32gib C1/C2 rerun — verdicts are deterministic, not expected to change); a CLAUDE.md §2 pillar-docs: apply RFC maturity-model amendments #2 wording clarification (flagged as a meta: RFC per CLAUDE.md's own rule, not touched here).

Invariants / honesty

This is exactly the "honest handling of where template mining can go wrong" the project calls for: the thesis (CLAUDE.md §2 pillar #2) is sound, but A1 measured the wrong quantity. The HDFS corpus is fetched at bench time and never redistributed (it stays in gitignored scratch/).

Checks

mdbook build clean.

🤖 Generated with Claude Code

Summary by CodeRabbit

Documentation

  • A1 compression gate reclassified from a blocking requirement to a diagnostic (non-blocking) item.
  • New benchmark results added (2026-06-13) showing A1 performance measurements on HDFS_v1 hardware.
  • Updated RFC documentation to reflect A1 demotion and clarify validation criteria for the template-mining pillar.

@jensholdgaard
jensholdgaard requested a review from Copilot June 13, 2026 21:42
@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@jensholdgaard, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 46 minutes and 54 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 186dcef1-8c9b-4c52-9b31-2315e1049fc2

📥 Commits

Reviewing files that changed from the base of the PR and between 25c9430 and 4e84615.

📒 Files selected for processing (4)
  • docs/SUMMARY.md
  • docs/benchmarks.md
  • docs/rfcs/0001-template-miner.md
  • docs/rfcs/0011-a1-rescope.md
📝 Walkthrough

Walkthrough

This PR reclassifies A1 from a gating compression thesis to a diagnostic measurement via RFC 0011, updates RFC 0001 to reflect that validated now depends on C1/C2 only, documents the A1 failure measurements in benchmarks, and adds the RFC to the documentation sidebar.

Changes

A1 Reclassification to Diagnostic

Layer / File(s) Summary
RFC 0011 document: A1 re-scope
docs/rfcs/0011-a1-rescope.md
New RFC 0011 document defines the reclassification of A1 from gating to diagnostic, re-scopes RFC 0001's validated stage to depend on C1/C2 only, specifies acceptance scenarios for A1 diagnostic labeling and C1/C2 passing criteria, records local HDFS_v1 measurement outcomes, and lists open questions.
RFC 0001 validated path re-scope
docs/rfcs/0001-template-miner.md
RFC 0001 is updated to state that validated now depends on C1/C2 passing on the representative ≥1M-line corpus, with A1 demoted to diagnostic and no longer blocking validated. Clarifies that green acceptance criteria were never blocked by A1.
Benchmarks: A1 diagnostic status and §9.5 results
docs/benchmarks.md
Benchmarks document marks A1 as diagnostic (not gating) in the thesis-gate table and adds §9.5 section recording HDFS_v1 measurement results showing A1 failing more severely (0.516× delta) while C1 remains bit-identical and C2 passes via template-count convergence.
Documentation sidebar: RFC 0011 entry
docs/SUMMARY.md
SUMMARY.md is updated to add a sidebar entry for RFC 0011 with a link to the new RFC document.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • jensholdgaard/ourios#85: Both PRs modify docs/benchmarks.md to record A1/C1/C2 benchmark outcomes and frame A1 as diagnostic/non-gating.
  • jensholdgaard/ourios#180: Both PRs update docs/benchmarks.md §9 by recording A1/C1/C2 benchmark results to drive RFC-aligned status semantics.
  • jensholdgaard/ourios#48: Both PRs involve A1/C1/C2 bench measurement and how results populate docs/benchmarks.md documentation.

Poem

A1 once stood tall as a gating gate,
But measurements showed its fate:
🐰 Demoted to diagnostic (oh what a call!),
While C1 and C2 still stand wall-to-wall,
RFC 0011 marks the new protocol.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and specifically summarizes the main change: demotion of A1 from a gating thesis to a diagnostic item, with the clarification that template-mining compression value is logical/query-based rather than byte-level.
Description check ✅ Passed The description is comprehensive and well-structured, addressing the finding, decision, scope of work, and deferments. However, the optional checklist section is incomplete—cargo fmt/clippy items are not applicable to docs-only changes, but Tests and RFC linking were not explicitly checked.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/rfc0011-a1-rescope

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Docs-only tuning RFC update that re-scopes thesis gate A1 (compression vs zstd) from a blocking validated gate to a recorded diagnostic, based on new HDFS_v1 measurements, and updates the benchmark/RFC documentation accordingly.

Changes:

  • Add RFC 0011 documenting the A1 re-scope decision and supporting measurements.
  • Update docs/benchmarks.md to mark A1 as diagnostic (not gating) and record the HDFS_v1 A1/C1/C2 run in a new results section.
  • Update RFC 0001’s status note to reflect the new validated path (C1 + C2; A1 diagnostic), and add the RFC to the mdBook SUMMARY.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
docs/SUMMARY.md Adds RFC 0011 to the mdBook navigation.
docs/rfcs/0011-a1-rescope.md New tuning RFC defining A1 as diagnostic and documenting the HDFS_v1 evidence.
docs/rfcs/0001-template-miner.md Updates the validated path note to reflect the re-scoped gates (C1/C2) and A1’s diagnostic status.
docs/benchmarks.md Marks A1 diagnostic in the thesis-gate table and adds a new §9.5 HDFS_v1 results entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/benchmarks.md Outdated
Comment thread docs/rfcs/0011-a1-rescope.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/benchmarks.md (1)

16-18: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Make A1 consistently diagnostic everywhere in this document.

The opening status blurb still calls A1 the open gate, and the A1 summary section / thesis-gate table still frame it as a [THESIS] goal. That conflicts with §9.5 and RFC 0011, which demote A1 to diagnostic-only. Please update those sections together so the benchmark doc stays internally consistent.

Also applies to: 94-109, 337-351

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/benchmarks.md` around lines 16 - 18, Update the document so A1 is
consistently marked diagnostic-only: in the opening status blurb remove the
phrase "open gate" for A1 and instead state it is diagnostic-only, change the A1
summary section and the thesis-gate table to remove the [THESIS] designation and
mark A1 as diagnostic/diagnostic-only, and ensure any other references to A1
(e.g., in the A1 summary paragraph and any gate-status listings) match §9.5 and
RFC 0011's demotion of A1 to diagnostic-only; search for all occurrences of
"A1", "open gate", "[THESIS]" and the thesis-gate table and update them to the
diagnostic-only wording so the document is internally consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/benchmarks.md`:
- Around line 16-18: Update the document so A1 is consistently marked
diagnostic-only: in the opening status blurb remove the phrase "open gate" for
A1 and instead state it is diagnostic-only, change the A1 summary section and
the thesis-gate table to remove the [THESIS] designation and mark A1 as
diagnostic/diagnostic-only, and ensure any other references to A1 (e.g., in the
A1 summary paragraph and any gate-status listings) match §9.5 and RFC 0011's
demotion of A1 to diagnostic-only; search for all occurrences of "A1", "open
gate", "[THESIS]" and the thesis-gate table and update them to the
diagnostic-only wording so the document is internally consistent.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4d06b98e-4b12-4a80-ae4c-878a07d255b0

📥 Commits

Reviewing files that changed from the base of the PR and between 8569fab and 25c9430.

📒 Files selected for processing (4)
  • docs/SUMMARY.md
  • docs/benchmarks.md
  • docs/rfcs/0001-template-miner.md
  • docs/rfcs/0011-a1-rescope.md

… not byte-level

A1 (compression >= 3x over zstd-alone) was only ever measured on
OTel-Demo (best 0.829x). Running it on LogHub HDFS_v1 — 11.2M lines, the
maximally-templated corpus, the single best case for the premise — fails
harder (0.516x, section 9.5): the more templated the corpus, the more
completely monolithic zstd-19 captures its redundancy (16x), while
template mining's extracted params are high-cardinality columns that
don't compress as well and columnar Parquet adds framing. The best case
for template mining is the best case for the byte codec.

RFC 0011 (tuning RFC, benchmarks.md section 7 escalation path) demotes A1
from a gating thesis criterion to a recorded diagnostic, and recognises
template mining's compression value as logical/query-pruning — captured
by B1/B2 (RFC 0007, validated). The template-miner pillar's gates become
C1 + C2, both of which PASS on representative HDFS_v1 (C1 1.000000; C2 a
40-template plateau at 11.2M lines, formal gate applying). RFC 0001's
validated path is re-scoped accordingly (status stays green pending
RFC 0011 acceptance + an authoritative baseline rerun).

Also: benchmarks.md section 7 gate table marks A1 diagnostic; 9.5 records
the HDFS A1/C1/C2 diagnostic run; SUMMARY nav; RFC 0001 status note. A
CLAUDE.md section 2 pillar-2 wording clarification is flagged as a
meta-RFC follow-up, not enacted here. The maturity-ladder flips are the
maintainer's.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jensholdgaard
jensholdgaard force-pushed the docs/rfc0011-a1-rescope branch from 25c9430 to 4e84615 Compare June 13, 2026 21:55
@jensholdgaard
jensholdgaard requested a review from Copilot June 13, 2026 22:01
@jensholdgaard
jensholdgaard merged commit 9a57ace into main Jun 13, 2026
12 checks passed
@jensholdgaard
jensholdgaard deleted the docs/rfc0011-a1-rescope branch June 13, 2026 22:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

> computed and written to the §9 results, flagged diagnostic — so the
> queryability premium stays visible and codec regressions surface

## 6. Measurements (2026-06-13, local — `hardware_kind = "unknown"`)
Comment thread docs/benchmarks.md
Comment on lines +731 to +734
**Local hardware → diagnostic, not
authoritative**; A1's verdict is corpus-structural and
hardware-independent (compressed bytes are deterministic), C1/C2 are
ratios, so the findings hold regardless of the runner.
Comment on lines +169 to +172
these are **diagnostic**, not the authoritative `baseline-8vcpu-32gib`
numbers; A1's verdict is corpus-structural and hardware-independent
(compressed bytes are deterministic), and C1/C2 are ratios, so the
finding stands regardless of the runner. The authoritative
jensholdgaard added a commit that referenced this pull request Jun 14, 2026
… clock (#197)

* test(ingester): make RFC0008.8 latency test deterministic via virtual clock

`rfc0008_8_p99_latency_tracks_batch_window` asserted a strict 3-way
monotonic ordering of three *wall-clock* P99 measurements
(`p99(10) < p99(50) < p99(150)`). That ordering is non-deterministic: on a
loaded or instrumented runner the per-flush fixed overhead dominates the
smallest window and any sample can spike, flipping the order. It flaked the
required `cargo test` job on #193 (`[164, 491, 311]`) and the
`continue-on-error` coverage job on #196 (`[482, 53, 154]`, llvm-cov
instrumentation inflating the 10 ms window to 482 ms).

Rewrite it to run under a paused virtual clock (`#[tokio::test(start_paused
= true)]`, enabled by tokio's `test-util` dev feature). tokio auto-advances
to the next pending timer when the runtime is idle, so the only time that
elapses is the coordinator's own `tokio::time::sleep(window)`; the real
fsync (offloaded to `spawn_blocking`) runs in wall-clock time but does not
advance the virtual clock. Measuring with `tokio::time::Instant` therefore
yields the commit's batch wait exactly, with zero jitter.

This strengthens the contract rather than weakening it (§6.2): a batch of
commits fired together all ride one window, so ack latency *equals* the
configured window and scales 1:1 across the spec's real `{10, 100, 1000}`
ms values (now free of wall-clock cost — the prior `{10, 50, 150}`
deviation is gone). A per-record-fsync impl would ack at ≈ 0 regardless of
the window. Batching itself (`appends_per_sync ≫ 1`) stays pinned
counter-exactly by the sibling test. Approach chosen by the maintainer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(rfc-0008): align §5 RFC0008.8 with the virtual-clock test

Copilot flagged a spec/test mismatch on #197: the RFC0008.8 §5 scenario
still described measuring wall-clock P99 ack latency over a 10 s sample
within a ±30 % tolerance, but the test now asserts exact ack-latency
equality under a paused virtual clock.

Update the scenario (and the §5 summary) to the virtual-clock formulation:
a batch of commits fired together under a paused clock each ack at exactly
the configured window (deterministic, no jitter) — the window dominates,
not per-record fsync. The contract is unchanged (window dominates,
appends_per_sync ≫ 1, §3.4 holds); only the measurement method is
restated, superseding the non-deterministic wall-clock-P99 formulation.
Approach approved by the maintainer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants