-
Notifications
You must be signed in to change notification settings - Fork 657
Comparing changes
Open a pull request
base repository: lance-format/lance
base: release-root/5.1.0-beta.N
head repository: lance-format/lance
compare: v5.1.0-beta.1
- 5 commits
- 20 files changed
- 5 contributors
Commits on Apr 9, 2026
-
chore: bump main to 5.1.0-beta.0
Unreleased version after creating v5.0.0-rc.1
Lance Release Bot committedApr 9, 2026 Configuration menu - View commit details
-
Copy full SHA for 7c39a31 - Browse repository at this point
Copy the full SHA 7c39a31View commit details -
fix: warn and clamp LANCE_INITIAL_UPLOAD_SIZE instead of panicking (#…
…6389) ## Summary - Replace `panic!()` in `initial_upload_size()` with a warn-and-clamp fallback when `LANCE_INITIAL_UPLOAD_SIZE` is set outside the valid `[5MB, 5GB]` range, so misconfiguration can't crash the process - Extract `MAX_UPLOAD_PART_SIZE` constant for the 5GB upper bound - Extract `clamp_initial_upload_size` as a pure helper and add boundary unit tests ## Motivation Setting `LANCE_INITIAL_UPLOAD_SIZE` to a value outside the valid range previously crashed the entire process via `panic!()` — a disproportionate response to a perf-tuning env var misconfiguration. Per review feedback (#6389 (comment)), a crash (or even a propagated `Result`) forces every caller to handle a purely operator-side mistake. Clamping to the valid range and emitting a single warning lets the workload proceed and surfaces the misconfiguration to operators. This also matches the silent-fallback behavior of the sibling env vars `LANCE_UPLOAD_CONCURRENCY` and `LANCE_CONN_RESET_RETRIES`. ## What Changed **`initial_upload_size()`**: Return type stays `usize`. Out-of-range values are clamped into `[5MB, 5GB]` and a single `tracing::warn!` is emitted with `requested` and `clamped` fields. The existing `OnceLock` cache guarantees the warning fires at most once per process, so no separate rate-limiting logic is needed. Non-numeric and unset values continue to fall back silently to the 5MB default. **`clamp_initial_upload_size(raw) -> (usize, bool)`**: Pure helper extracted for testability. Returns the clamped value and whether clamping occurred. **`MAX_UPLOAD_PART_SIZE`**: New constant for the 5GB upper bound. ## Behavioral Equivalence | Input | Before | After | |-------|--------|-------| | Env not set | 5MB default | 5MB default | | Non-numeric (e.g. `"abc"`) | 5MB default | 5MB default | | Valid integer in `[5MB, 5GB]` | Returns the value | Returns the value | | Integer `< 5MB` | **`panic!()`** | Clamped to 5MB + `warn!` (once) | | Integer `> 5GB` | **`panic!()`** | Clamped to 5GB + `warn!` (once) | No API changes — `ObjectWriter::new()` signature is unchanged. ## Test plan - [x] New boundary unit tests: below min, min boundary, in-range, max boundary, above max, `usize::MAX` - [x] `cargo test -p lance-io --lib object_writer` — 7 tests pass - [x] `cargo clippy -p lance-io --tests -- -D warnings` — clean - [x] `cargo fmt -p lance-io -- --check` — clean - [x] `cargo check --workspace --tests` — full workspace compiles
Configuration menu - View commit details
-
Copy full SHA for bec9491 - Browse repository at this point
Copy the full SHA bec9491View commit details -
chore: upgrade Rust toolchain to 1.94.0 (#6460)
Upgrades the pinned Rust toolchain from 1.91.0 to 1.94.0. The only code change needed was boxing two futures in `build_partial_fixture` in the `distributed_vector_build` bench, where 1.94's stricter layout computation overflowed the default recursion limit. Boxing makes the awaited futures' sizes constant (a pointer), breaking the recursion. --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for f2db129 - Browse repository at this point
Copy the full SHA f2db129View commit details
Commits on Apr 10, 2026
-
feat(index): support float16 and float64 in IVF_FLAT (#6476)
## Feature ### What is the new feature? This PR adds native `float16` and `float64` support for `IVF_FLAT` and `IVF_HNSW_FLAT`. ### Why do we need this feature? Flat IVF indexing previously only worked end to end for `float32`. That meant users could not build, merge, reload, and query flat IVF indexes on `float16` or `float64` vectors without running into `Float32`-specific assumptions in flat storage, writer initialization, and merge/query paths. ### How does it work? The implementation makes flat IVF paths dispatch on the actual Arrow element type from stored flat data instead of assuming `Float32`. - `FlatFloatStorage` now dispatches distance calculators for `float16`, `float32`, and `float64`. - Query/training helpers that previously special-cased `Float32` now accept the native float dtype where needed. - Tests now cover flat storage distance, partition serde roundtrip, IVF create/query/remap, and distributed merge behavior for `float16` / `float64`. ## Validation - `cargo fmt --all` - `cargo check -p lance-index --lib` - `cargo check -p lance --lib` - `cargo test -p lance-index test_flat_float_storage_distance_f16 -- --nocapture` - `cargo test -p lance-index test_merge_ivf_flat_preserves_float64_schema -- --nocapture` - `cargo test -p lance test_build_ivf_flat -- --nocapture` - `cargo test -p lance test_create_ivf_hnsw_flat -- --nocapture` - `cargo test -p lance test_create_ivf_flat_f16 -- --nocapture` ## Benchmark Note I also benchmarked float32 `IVF_FLAT` before vs after, no obvious performance diffs
Configuration menu - View commit details
-
Copy full SHA for a57ec81 - Browse repository at this point
Copy the full SHA a57ec81View commit details -
chore: release beta version 5.1.0-beta.1
Lance Release Bot committedApr 10, 2026 Configuration menu - View commit details
-
Copy full SHA for 103e947 - Browse repository at this point
Copy the full SHA 103e947View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff release-root/5.1.0-beta.N...v5.1.0-beta.1