rfc: reuse accepted merge context and bound table preparation - #638
Draft
ragnorc wants to merge 3 commits into
Draft
rfc: reuse accepted merge context and bound table preparation#638ragnorc wants to merge 3 commits into
ragnorc wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Branch merge repeatedly resolves the accepted schema and branch binding for each existing target, then prepares independent tables serially. RFC 0053 proposes reusing the accepted merge context and preparing up to four non-Blob tables concurrently while retaining the current three-way semantics, locks, validation, recovery, serial durable effects, and single graph publication.
The draft includes the 24-run CSV and exact diagnostic prototype patch. That prototype measured 2.35× faster eight-table merges and 2.51× faster 29-table merges with 17 ms added per physical storage request. These are diagnostic-build results; the proposed aggregate memory accounting, fallback, and release qualification remain acceptance gates. The proposal does not establish constant cost in catalog size, history, or unrelated fragments.
Backing issue / RFC
Related work: #310, #384, and #504. Their narrower completed work does not establish that these merge-path costs are resolved; this PR closes none of them.
Checklist
Local verification
python3 scripts/check-docs.py— passed, 127 Markdown files.bash scripts/check-agents-md.sh— passed, 45 links and 43 docs.python3 scripts/check-workflow-action-pins.py— passed, 63 pinned external actions.typosv1.50.1, from the repository root — passed.git diff --cached --check— passed.Notes for reviewers
status: draft,implementation: not-started. Review the existing-target opener contract, deterministic scheduling, proposed 128 MiB additional working-set allowance, width fallback, cancellation ownership, and benchmark promotion gates. Context reuse can ship independently of concurrent preparation. No Lance upgrade, storage migration, shorter-lock protocol, or concurrent durable-commit executor is proposed.