Skip to content

fix: harden storage consistency and blob admission - #251

Merged
beinan merged 2 commits into
lance-format:mainfrom
beinan:codex/review-storage-reliability
Sep 11, 2026
Merged

beinan merged 2 commits into
lance-format:mainfrom
beinan:codex/review-storage-reliability

Conversation

@beinan

@beinan beinan commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fix data loss and inconsistent reads during rollout schema upgrades, peer WAL merges, and checkout; enforce blob admission before allocating payloads; and make dataset deletion remove data through its storage backend.

Unknown-size admission is deliberately conservative when ROLLOUT_MAX_INFLIGHT_BLOB_BYTES is enabled and can reduce concurrency. Uniqueness serialization is per handle; applications still coordinate keys across processes. Dataset deletion requires remote writers to be quiesced.

Testing

  • Project CI helper completed successfully: workspace formatting, Clippy (--workspace --all-targets -- -D warnings), all-target Rust tests, Python tests, Ruff formatting/lint, and Pyright.

  • Rust workspace: 392 passed, 0 failed, 25 ignored. The 22 etcd-backed master tests also passed separately on 948b970 against local etcd 3.7.0; this follow-up does not change master code. The remaining 3 ignored tests are existing benchmarks/manual checks.

  • Rebuilt the Python extension from this tree with maturin. Python 3.13: 215 passed, 6 skipped, 1 existing xfail for per-append version advancement under MemWAL. The new merged-version checkout regressions pass.

  • Added 21 regression tests covering both key types, concurrent schema upgrades, stale and interrupted list scans, checkout during a prepared merge, read-only snapshot mutations, post-commit WAL cleanup and bounded retries, blob admission before loading, cancellation, counter overflow, URI deletion/recreation, evicted live handles across all LRU store kinds, weak-registry cleanup, and deletion failure/retry. Updated the legacy-schema fixture to actually construct the old schema before testing migration.

  • All 10 GitHub CI checks passed for b7d1669, including Rust tests and coverage, Python 3.11 tests, all three wheel builds, and style checks.

@beinan
beinan merged commit 000ad47 into lance-format:main Sep 11, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment