Skip to content

fix: address PR 48 review findings - #53

Closed
pathscale wants to merge 6 commits into
fix/overwrite-inplace-v2from
fix/pr48-review-followups
Closed

fix: address PR 48 review findings#53
pathscale wants to merge 6 commits into
fix/overwrite-inplace-v2from
fix/pr48-review-followups

Conversation

@pathscale

Copy link
Copy Markdown
Owner

Summary

This PR is intentionally stacked on PR #48 and audits every item from the supplied review against the current PR #48 head.

Confirmed and addressed

  • Replace repeated reusable-range rebuilding with sort/coalesce plus a linear subtraction pass; use a HashSet for reclaimed page membership.
  • Use FxHash for the 64 logical WorkTablesIndex mutation stripes and verify sequential integer IDs exercise every stripe.
  • Reuse the already locked old row when an in-place update falls back to reinsert, while preserving exact-length and immutable-publication safety.
  • Document the synchronous map versus asynchronous row-lock boundary and test cancelled lock acquisition cleanup.
  • Refuse page reclamation if logical events remain but no next operation ID is available; add shuffled logical replay and typed persistence quarantine integration coverage.
  • Generate distinct sized and unsized full-row update bodies. This removes PR Mega Beta5 #48 generated unreachable-code warnings and avoids serializing an unsized row twice on the in-place path.

Reviewed; no behavioral change required

  • LockAcquirer::drop already calls an existing remove_with_lock_check method; the reported compile mismatch is not present.
  • The mixed parking_lot/Tokio design does not hold a synchronous map guard across await.
  • update_in_place already publishes immutable owned rows and checks exact serialized slot length before copying; regression coverage was added.
  • LockMap strong-count cleanup is deliberate because public raw Arc insert/get APIs can pin entries; this is now documented.
  • PersistenceIndexCorruption already has typed terminal semantics documented for intake, wait_for_ops, and close; an end-to-end test now proves them.
  • SpaceDataOps default methods and engine implementations compile across default and all features.

Commit structure

One fix, performance change, or test concern per commit:

  1. reusable data-range subtraction and reclaim membership
  2. logical WTI stripe hashing
  3. in-place fallback row reuse and safety regression
  4. async row-lock cancellation cleanup
  5. persistence barriers and quarantine coverage
  6. full-row codegen cleanup and duplicate-serialization removal

Verification

  • cargo fmt --all -- --check
  • cargo test: 359 passed, 0 failed, 2 ignored
  • cargo test --all-features: 360 passed, 0 failed, 3 ignored
  • cargo test -p worktable_codegen: 66 passed
  • cargo clippy --all-targets -- -D warnings
  • cargo clippy --all-targets --all-features -- -D warnings

The macOS all-feature test link emits the existing __eh_frame compact-unwind size warning; tests still pass and Clippy is clean.

@pathscale

Copy link
Copy Markdown
Owner Author

Superseded: all six follow-up commits were rebased onto and folded into PR #48 at 1858173. PR #48 remains open and unmerged.

@pathscale pathscale closed this Aug 5, 2026
@pathscale
pathscale deleted the fix/pr48-review-followups branch August 5, 2026 01:24
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