Skip to content

fix(master): bound large-blob compaction memory - #229

Merged
beinan merged 1 commit into
lance-format:mainfrom
beinan:fix/bound-master-compaction
Jul 31, 2026
Merged

fix(master): bound large-blob compaction memory#229
beinan merged 1 commit into
lance-format:mainfrom
beinan:fix/bound-master-compaction

Conversation

@beinan

@beinan beinan commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • serialize master-initiated rollout compactions with a dedicated process-wide semaphore, shared by scheduler and cold-retirement work
  • bound each rewrite with configurable input batch size, internal thread count, source-fragment budget, and output-file byte limit
  • attempt Lance page-level binary copy before falling back to row decode/re-encode
  • execute oversized Lance plans incrementally by truncating public compaction tasks to the configured fragment budget, so a single huge planned group still makes progress
  • document and deploy conservative defaults: concurrency 1, threads 1, batch size 8, 32 source fragments, 1 GiB output files

Testing

  • ./.codex/skills/ci-pr-helper/scripts/run_ci_checks.sh
  • 215 core/workspace Rust tests passed, 3 ignored; integration and service tests passed
  • 205 Python tests passed, 2 skipped
  • cargo fmt, cargo clippy, ruff format/check, and pyright passed

@beinan
beinan merged commit 90a3936 into lance-format:main Jul 31, 2026
10 checks passed
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