Skip to content

rfc: reuse accepted merge context and bound table preparation - #638

Merged
aaltshuler merged 6 commits into
mainfrom
codex/rfc-bounded-merge-preparation
Sep 6, 2026
Merged

rfc: reuse accepted merge context and bound table preparation#638
aaltshuler merged 6 commits into
mainfrom
codex/rfc-bounded-merge-preparation

Conversation

@ragnorc

@ragnorc ragnorc commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

What & why

Accept RFC 0057 for reusing the accepted merge context and preparing eligible tables in bounded ordered windows. Preserve the existing three-way semantics, authority checks, combined validation, recovery ownership, serial durable effects, and single graph publication.

This is the canonical design record. It consolidates the amended proposal from #668 and resolves the RFC-number collisions with current main. RFC 0056 is reserved by #670; retained merged ancestry in #662 is a separate draft reallocated to 0058.

This PR changes documentation and evidence only. Context reuse is implemented in pending #662; pending #668 supplies the diagnostic scheduler. Neither runtime PR is merged by accepting this design. Production remains width one, and HTTP retains its independent width-one ceiling.

Current evidence and disposition

The checked-in portable receipt contains all 29 matched pairs / 58 timed merges, source and executable hashes, fixture parameters, resource settings, and phase/count/resource summaries. Five alternating pairs per main point used 121 populated tables with four rows each and 17 ms delay per observed ObjectStore API call.

Touched tables Frozen serial median Diagnostic width-four median Ratio of medians
1 0.802 s 0.812 s 0.987×
8 3.619 s 1.956 s 1.85×
29 12.604 s 6.598 s 1.91×

The baseline already includes context reuse; these results isolate the scheduler. The one-table regression is within 10%, but both multi-table points fail the 2× activation gate. The threshold remains unchanged.

Small history controls (four tables, 16 live rows, two pairs each) fall from 1.72× at H0 to 1.44× at H16 and 1.23× at H64. Manifest preparation/publication still dominate older graphs. Largest persisted fixture: 9.605 MiB; maximum observed benchmark-process RSS: 71.5 MiB. This does not qualify decoder memory or every legacy physical format.

These are local release diagnostics, not S3 latency or p95 claims. The cloud AWS performance benchmark has not run. AWS-feature correctness CI is separate. Preserve the original 24-run prototype CSV and exact patch archive as explicitly historical evidence; its 2.35×/2.51× numbers are not current implementation results.

Backing issue / RFC

Related work: #641 (history/catalog costs), #642 (fork/delete amplification), #643 (independent-target serialization). This PR does not close those issues.

Validation

  • Documentation links/RFC metadata, AGENTS links, pinned workflow actions, spelling, and diff whitespace checks pass.
  • Portable receipt totals and medians independently checked against the existing paired results; original prototype archive and CSV bytes preserved.
  • No Rust build or benchmark rerun for this documentation-only correction. Existing implementation correctness results are attributed to their measured commit in the RFC.

Remaining activation gates

Native pre-decode allocations and serial-valid acceptance; useful overlapping Blob/failure/fallback/cancellation/recovery coverage; the 2× speed gate and deployed-store benchmark evidence. HTTP also requires request-independent operation ownership and shutdown drain. status: accepted, implementation: in-progress records design acceptance while retaining these explicit gates.

@aaltshuler
aaltshuler marked this pull request as ready for review September 6, 2026 14:52
@aaltshuler
aaltshuler merged commit 856eef4 into main Sep 6, 2026
23 checks passed
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