Skip to content

fix: durably reuse vacuumed data pages - #52

Merged
pathscale merged 1 commit into
fix/overwrite-inplace-v2from
fix/31-persisted-vacuum-reclamation
Aug 4, 2026
Merged

fix: durably reuse vacuumed data pages#52
pathscale merged 1 commit into
fix/overwrite-inplace-v2from
fix/31-persisted-vacuum-reclamation

Conversation

@pathscale

Copy link
Copy Markdown
Owner

Fixes #31.

Persist whole data-page free ranges behind an ordered persistence barrier. Vacuum queues each reclamation marker before exposing that page to in-memory allocators, and later writes consume durable ranges before writing row bytes. This stops repeated .wt.data growth across reloads without claiming online file truncation.

Regression coverage:

  • test_vacuum_on_persisted_table_survives_reload proves free space survives reload, the next insert does not grow the file, and a second reload/reuse cannot overwrite the first reused row.
  • vacuum_reclamation_waits_for_preceding_row_moves proves FIFO ordering across row batches and the reclamation barrier.

Stacked on #51, which is stacked on #48.

Validation:

  • cargo fmt --check
  • cargo clippy --all-targets -- -D warnings
  • cargo test (151 library, 356 integration with 2 ignored, 2 doctests)

Base automatically changed from fix/33-cancelled-lock-acquirer to fix/overwrite-inplace-v2 August 4, 2026 23:49
@pathscale
pathscale merged commit 316c5ac into fix/overwrite-inplace-v2 Aug 4, 2026
@pathscale
pathscale deleted the fix/31-persisted-vacuum-reclamation branch August 4, 2026 23:49
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.

1 participant