Repository navigation
feat(wal): close source pins with durable publication fences - #415
Merged
Merged
Conversation
46 of 53 tasks
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.
Summary
Persist a source-group closed-plan fence before releasing its publication pin. A catalog quorum proof authorizes closure only for the exact durable Published outcome, binding the source selection, independent cursor and selected manifest. Delayed old pin requests are rejected, and identical closure retries recover their original confirmation index after restart.
Bound closure history by registered-table capacity and validate it in v8 checkpoints. Real Lance six-process tests cover lost closure replies, source snapshots, full process restart, old-pin rejection and complete payload readback. Payload retirement and physical reclamation remain separate work.
Refs #378.
Testing
The complete repository CI helper passed: 605 workspace Rust tests, Python 229 passed / 2 skipped / 1 expected failure, formatting, Clippy, Ruff and Pyright. All-feature WAL Clippy, server build and workspace packaging passed. All 97 focused Rust tests passed, including 10 process tests; immutable source hashes matched before and after qualification.
The rebased WAL source and test files are byte-identical to the locally qualified versions; final-head CI also validates integration with current main.