Skip to content

Port HelixDB fork changes to SlateDB v0.15 - #8

Merged
matthewsanetra merged 66 commits into
mainfrom
codex/port-v0.15
Aug 18, 2026
Merged

matthewsanetra merged 66 commits into
mainfrom
codex/port-v0.15

Conversation

@matthewsanetra

@matthewsanetra matthewsanetra commented Aug 7, 2026 •

Copy link
Copy Markdown

Note

Validated against HelixDB/helix-db@bb5a1a02967109f20dd462972d562c5523748eee with only its SlateDB dependency redirected to this local v0.15 port. The db crate check, full test suite, requested bitmap concurrency/race cases, and strict library Clippy check passed.

Summary

  • Port the HelixDB fork changes onto the SlateDB v0.15.0 codebase while preserving v0.15 reader modes, manifest polling, WAL behavior, and cache policy support.
  • Reconcile reader snapshots with ManagedCheckpoint, Checkpoint, and FollowLatest modes, including protected generations and mode-specific behavior.
  • Restore multi-get across databases, readers, snapshots, transactions, and shared read operations.
  • Add the fork's Rust-only conflict-compatible transaction merge API, preserving SSI read conflicts while allowing commutative writers to the same key to commit concurrently.
  • Integrate query-scoped storage metrics, synchronous cache usage snapshots, the typed DatabaseMissing error, binding expectations, and the macOS cross-test matrix.
  • Preserve HelixDB's cache_puts configuration and legacy optional-checkpoint reader opening while routing both through v0.15-native cache policies and DbReaderMode.

Validation

  • Each-feature workspace check: 30/30 configurations passed with warnings denied.
  • Workspace/all-feature nextest: 2,235 passed, 1 skipped by profile.
  • Documentation tests: 63 passed, 7 ignored.
  • DST profile: 4 passed, 25 skipped by profile.
  • Binding suites: Node 49/49, Python 47/47, Go passed, Java passed with Java 22, and generated binding directories remained unchanged.
  • Reader scaling and reader memory-scaling benchmarks compile with warnings denied.
  • HelixDB db validation at bb5a1a02967109f20dd462972d562c5523748eee: cargo check -p db, full cargo test -p db, requested bitmap concurrency/race tests, and cargo clippy -p db --lib -- -D warnings passed.
  • HelixDB's all-target strict Clippy additionally reports one pre-existing manual_range_patterns lint in unchanged test code (production_contracts.rs).

rodesai and others added 30 commits July 8, 2026 18:43
Blog post on segment-oriented compaction from rfc 24.
…cted` tick and increase worker default heartbeat_interval (slatedb#1931)
rodesai and others added 24 commits July 28, 2026 02:26
- Introduced `multi_get` and `multi_get_with_options` methods in `Db`, `DbReader`, `DbSnapshot`, and `DbTransaction` to retrieve multiple values efficiently.
- Implemented a new `WriteBatchLookup` enum to facilitate lookup operations in `WriteBatch`.
- Enhanced the `lookup_latest_for_key` method to support the new multi-get functionality.
- Added tests to ensure correctness of multi-get operations, preserving input order and handling duplicates.

This update improves the performance and usability of batch retrieval operations in the database.
Keep the fork-facing object-store cache switch while routing it through v0.15's split flush and compaction admission policy. Accept the legacy optional checkpoint argument at DbReader::open through DbReaderMode conversion without weakening the v0.15 builder API.
All origin/main changes through dfe4b4d were reapplied as v0.15-compatible commits on top of v0.15.0. Record origin/main as integrated without reintroducing pre-v0.15 implementations.
@matthewsanetra
matthewsanetra marked this pull request as ready for review August 18, 2026 10:17
@matthewsanetra
matthewsanetra merged commit 30d9f28 into main Aug 18, 2026
17 checks passed
xav-db pushed a commit to HelixDB/helix-db that referenced this pull request Aug 18, 2026
## What changed

- update the Helix SlateDB fork revision from dfe4b4dc to merge commit
30d9f28c
- consume SlateDB v0.15.0 from the merged HelixDB/slatedb#8 port
- refresh the workspace, migration-parity, and checked-in fuzz lockfiles
- use a portable /tmp fallback for production-coverage scripts on Ubuntu
runners

## Revision provenance

SlateDB commit 30d9f28cfeb93cf95652aac2b7724811c5c49630 is the merge
commit for HelixDB/slatedb#8. Its second parent is
a60a1234f8b6a184381b0b0b2dc88c1cabd010f7, the former codex/port-v0.15
branch tip. Pinning the merge commit validates the merged main-branch
state while retaining the exact PR revision in its ancestry.

## Why

The SlateDB v0.15 fork port is now merged. Helix should validate the
immutable merged revision rather than the former draft branch tip.

## Impact

No Helix source compatibility changes were required beyond the existing
SlateDB v0.15 migration-parity adjustments. The production-coverage
script change only replaces the macOS-specific /private/tmp fallback
with portable /tmp.

## Validation

- cargo fmt --all -- --check
- cargo clippy --workspace -- -D warnings
- cargo metadata --locked resolves SlateDB v0.15.0 at 30d9f28c
- all four checked-in lockfiles resolve SlateDB packages at 30d9f28c
- shell syntax and unset-TMPDIR fallback checks pass
@xav-db
xav-db deleted the codex/port-v0.15 branch August 25, 2026 18:26
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.