feat: add deletion vector compaction planning and execution - #921
Draft
wirybeaver wants to merge 2 commits into
Draft
wirybeaver wants to merge 2 commits into
wirybeaver wants to merge 2 commits into
Conversation
wirybeaver
force-pushed
the
feature/dv-compaction-executor
branch
5 times, most recently
from
September 6, 2026 00:19
55c6b56 to
b3834d9
Compare
wirybeaver
force-pushed
the
feature/dv-compaction-executor
branch
from
October 1, 2026 19:57
b3834d9 to
a7d3361
Compare
Treat empty plans as no-ops and centralize owned-output cleanup without weakening unknown-commit or stale-plan safety. Consolidate fault injection tests and cover successful multi-file rewriting with a fully deleted group.
wirybeaver
force-pushed
the
feature/dv-compaction-executor
branch
from
October 1, 2026 21:45
a7d3361 to
877ff3e
Compare
This branch has not been deployed
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.
Note
depends on #918
Summary
Deliver DV-aware compaction as one feature, combining the former standalone planner (#918) with its executor.
form deterministic, snapshot-bound groups within partition/spec boundaries using file size and file-scoped delete pressure
use ordinary double-precision heuristic thresholds; remove the redundant maximum-size ratio and exact binary-rational comparison machinery
read real surviving rows through the existing scan reader, write replacement files, and atomically commit them with obsolete delete-entry removal
preserve row lineage, reject stale/duplicate plans, retain shared Puffin objects, and safely handle output cleanup and unknown commit states
treat empty planner results as no-ops, centralize execution-result handling, and reuse shared cleanup and native stream ownership
consolidate before/after-creation fault injection and cover successful multi-file compaction together with a fully deleted group
DV-PR-4 in #916. Depends only on DV-PR-1 / #919 for shared cleanup behavior and end-to-end test setup. The complete compaction feature is one commit above #919. No prerequisite commits from #913, #914, #915, or the separate #918 remain.
Test plan
GCC 14 focused checks on the four-feature integration tree based on
3c5715c; the final changed branch sources were verified to match the tested tree.data_test --gtest_filter='*Compaction*': 14 passedCoverage includes empty-plan no-op, successful multi-file/two-group compaction with a fully deleted group, exact surviving rows/lineage, shared Puffin retention, stale/duplicate plans, atomic commit failure, cleanup retry, and before/after-creation failures. Planner logic was unchanged in this refactor.
git diff --check: passed