Commit Graph
2206 Commits
Author SHA1 Message Date
xzfc 3eefe44572 Fix never-ending optimization loop with vectors:{memory:cached} (#10664)
* Add `test_optimizers_should_settle`

* Fix `"memory": "cached"` endless optimization loop
2026-09-16 15:26:07 +00:00
dependabot[bot] 52580918b7 build(deps): bump io-uring from 0.7.14 to 0.7.15 (#10648)
Bumps [io-uring](https://github.com/tokio-rs/io-uring) from 0.7.14 to 0.7.15.
- [Commits](https://github.com/tokio-rs/io-uring/commits)

---
updated-dependencies:
- dependency-name: io-uring
  dependency-version: 0.7.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 10:11:10 +02:00
dependabot[bot] 3670945acf build(deps): bump rstest from 0.26.1 to 0.27.0 (#10653)
Bumps [rstest](https://github.com/la10736/rstest) from 0.26.1 to 0.27.0.
- [Release notes](https://github.com/la10736/rstest/releases)
- [Changelog](https://github.com/la10736/rstest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/la10736/rstest/compare/v0.26.1...v0.27.0)

---
updated-dependencies:
- dependency-name: rstest
  dependency-version: 0.27.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 09:29:42 +02:00
dependabot[bot] 3916c7e6a7 build(deps): bump rustls from 0.23.43 to 0.23.44 (#10651)
Bumps [rustls](https://github.com/rustls/rustls) from 0.23.43 to 0.23.44.
- [Release notes](https://github.com/rustls/rustls/releases)
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustls/rustls/compare/v/0.23.43...v/0.23.44)

---
updated-dependencies:
- dependency-name: rustls
  dependency-version: 0.23.44
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 09:25:51 +02:00
dependabot[bot] f9672e2e28 build(deps): bump smallvec from 1.16.0 to 1.16.1 (#10649)
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.16.0 to 1.16.1.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.16.0...v1.16.1)

---
updated-dependencies:
- dependency-name: smallvec
  dependency-version: 1.16.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 09:25:22 +02:00
dependabot[bot] c60d270e43 build(deps): bump uniffi from 0.32.0 to 0.32.1 (#10652)
Bumps [uniffi](https://github.com/mozilla/uniffi-rs) from 0.32.0 to 0.32.1.
- [Changelog](https://github.com/mozilla/uniffi-rs/blob/v0.32.1/CHANGELOG.md)
- [Commits](https://github.com/mozilla/uniffi-rs/compare/v0.32.0...v0.32.1)

---
updated-dependencies:
- dependency-name: uniffi
  dependency-version: 0.32.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 09:24:59 +02:00
dependabot[bot] a038d5a85d build(deps): bump syn from 3.0.4 to 3.0.5 (#10654)
Bumps [syn](https://github.com/dtolnay/syn) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/3.0.4...3.0.5)

---
updated-dependencies:
- dependency-name: syn
  dependency-version: 3.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 09:24:35 +02:00
dependabot[bot] f4cbaae485 build(deps): bump foyer from 0.22.4 to 0.22.6 (#10656)
Bumps [foyer](https://github.com/foyer-rs/foyer) from 0.22.4 to 0.22.6.
- [Release notes](https://github.com/foyer-rs/foyer/releases)
- [Changelog](https://github.com/foyer-rs/foyer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/foyer-rs/foyer/compare/v0.22.4...v0.22.6)

---
updated-dependencies:
- dependency-name: foyer
  dependency-version: 0.22.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 09:24:13 +02:00
dependabot[bot] b798fe6390 build(deps): bump zerocopy from 0.8.56 to 0.8.57 (#10655)
Bumps [zerocopy](https://github.com/google/zerocopy) from 0.8.56 to 0.8.57.
- [Release notes](https://github.com/google/zerocopy/releases)
- [Commits](https://github.com/google/zerocopy/compare/v0.8.56...v0.8.57)

---
updated-dependencies:
- dependency-name: zerocopy
  dependency-version: 0.8.57
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 09:23:24 +02:00
dependabot[bot] 742fca5848 build(deps): bump reqwest from 0.13.4 to 0.13.5 (#10657)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.13.4 to 0.13.5.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.13.4...v0.13.5)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.13.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-15 09:22:56 +02:00
0ff1c4e2b7 Send the queue proxy batch as a pre-encoded gRPC body (#10617)
* Send the queue proxy batch as a pre-encoded gRPC body

The parent commits moved the WAL read, the operation clone and the request build
off the async runtime. Two passes over the batch were left on it.

Measured cost of each synchronous pass over a 26.2 MiB send batch (800 ops x 30
points x 256 dims), release build:

  pass 1  clone WAL operations      72.4 ms   moved by the parent commits
  pass 2  build gRPC request        22.2 ms   moved by the parent commits
  pass 3  clone request to send     65.7 ms   on the async runtime
  pass 4  protobuf encode (tonic)   41.4 ms   on the async runtime

Pass 3 is there because `with_points_client` takes `impl Fn` and the channel pool
calls that closure once per attempt, so each attempt needs its own owned message.
Pass 4 runs inside `poll_next`: for a unary call tonic encodes the whole message
in a single synchronous `encode_item`, so a worker is blocked for the full 41 ms,
once per attempt.

Encoding the batch up front removes both. The generated client cannot take a
pre-encoded body, `update_batch` is typed `impl IntoRequest<UpdateBatchInternal>`,
but all it does is pick a codec and a path and call `Grpc::unary`, and we already
build the client ourselves from a pooled channel. `update_batch_pre_encoded` does
the same three things with a codec that writes the encoded bytes through and
decodes the response with prost.

What stays on the runtime is the copy of the encoded body into tonic's send
buffer: 14.9 ms for 26.2 MiB under jemalloc, nearly all of it faulting in freshly
mapped pages rather than the copy itself (0.9 ms when the allocator hands back
warm pages). Retries share the same refcounted bytes instead of cloning and
re-encoding, so they drop with it.

  on the runtime before   107.2 ms per attempt
  on the runtime after     14.9 ms per attempt

Bypassing the generated client means the RPC path and message types no longer
follow the proto automatically, so a test checks them against the compiled
descriptor set.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WZjWYpKeYdGpKiLeEZU9oc

* Hand the pre-encoded update batch a configured Grpc, take the service name from the generated code

`update_batch_pre_encoded` took a bare channel plus a `max_decoding_message_size`
argument, and its only caller passed `usize::MAX`. Every other internal client
applies that limit inside its `with_*_client` helper, so do the same: `with_grpc`
hands out the `tonic::client::Grpc` the generated clients wrap, already
configured, and the argument goes away.

The service half of the RPC identity now comes from the generated
`points_internal_server::SERVICE_NAME` instead of a second literal. Only the
method name and the path literal remain hand-written, still pinned to the
descriptor set by the test.

`PreEncodedMessage::encode` uses `encode_to_vec`: one pass instead of a separate
`encoded_len` call, and no `expect`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* Adapt pre-encoding to the build/forward split from #10599

`forward_update_batch` takes `Arc<UpdateBatchInternal>` and encodes it
once on the blocking pool, so the channel pool's attempts share the
bytes. The queue proxy keeps the built request in that `Arc` across
`BATCH_RETRIES` and for the per-operation isolation path.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: generall <andrey@qdrant.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 15:38:30 +02:00
dependabot[bot]andqdrant-cloud-bot 682c5b7821 build(deps): bump constant_time_eq from 0.5.0 to 0.6.0 (#10514)
* build(deps): bump constant_time_eq from 0.5.0 to 0.6.0

Bumps constant_time_eq from 0.5.0 to 0.6.0.

---
updated-dependencies:
- dependency-name: constant_time_eq
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(deps): bump constant_time_eq version pin to 0.6.0

Dependabot updated Cargo.lock to 0.6.0 but left Cargo.toml at 0.5.0,
so --locked builds failed and cargo regenerated the lockfile back to 0.5.0.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: qdrant-cloud-bot <111755117+qdrant-cloud-bot@users.noreply.github.com>
2026-09-08 10:23:21 +02:00
dependabot[bot] ecec60dc0a build(deps): bump foyer from 0.22.3 to 0.22.4 (#10508)
Bumps [foyer](https://github.com/foyer-rs/foyer) from 0.22.3 to 0.22.4.
- [Release notes](https://github.com/foyer-rs/foyer/releases)
- [Changelog](https://github.com/foyer-rs/foyer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/foyer-rs/foyer/compare/v0.22.3...v0.22.4)

---
updated-dependencies:
- dependency-name: foyer
  dependency-version: 0.22.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-08 07:56:18 +02:00
dependabot[bot] 1e9747ef31 build(deps): bump smallvec from 1.15.2 to 1.16.0 (#10509)
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.15.2 to 1.16.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.15.2...v1.16.0)

---
updated-dependencies:
- dependency-name: smallvec
  dependency-version: 1.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-08 07:35:32 +02:00
dependabot[bot] a3fee7d3a6 build(deps): bump tinyvec from 1.12.0 to 1.13.2 (#10512)
Bumps [tinyvec](https://github.com/Lokathor/tinyvec) from 1.12.0 to 1.13.2.
- [Changelog](https://github.com/Lokathor/tinyvec/blob/main/changelog.md)
- [Commits](https://github.com/Lokathor/tinyvec/compare/v1.12.0...v1.13.2)

---
updated-dependencies:
- dependency-name: tinyvec
  dependency-version: 1.13.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-08 07:34:26 +02:00
dependabot[bot] 6903f0ec07 build(deps): bump indexmap from 2.14.0 to 2.14.1 (#10510)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.14.0 to 2.14.1.
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.14.0...2.14.1)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-version: 2.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-08 07:05:34 +02:00
dependabot[bot] 7ab0681834 build(deps): bump ecow from 0.3.0 to 0.3.1 (#10511)
Bumps [ecow](https://github.com/typst/ecow) from 0.3.0 to 0.3.1.
- [Release notes](https://github.com/typst/ecow/releases)
- [Commits](https://github.com/typst/ecow/compare/v0.3.0...v0.3.1)

---
updated-dependencies:
- dependency-name: ecow
  dependency-version: 0.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-08 07:04:57 +02:00
dependabot[bot] 619cac6840 build(deps): bump cc from 1.4.4 to 1.4.5 (#10513)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.4.4 to 1.4.5.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.4.4...cc-v1.4.5)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.4.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-08 07:04:14 +02:00
Arnaud GourlayandClaude Opus 5 73831260e6 Remove msgpack (#10505)
* Remove MessagePack (rmp-serde)

The WAL switched from msgpack to CBOR in v0.3.5 (2021-07-11), so v0.3.4
is the last version that wrote msgpack entries. Drop the read fallback
kept for those entries, plus the remaining test and bench usages.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Drop unused fs4 dependency from collection

Not referenced anywhere in the crate. Still used by wal and common, so
the workspace entry stays.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-07 15:36:27 +02:00
Andrey Vasnetsov fec1f39d54 Probe large memory reports with temporary workers (#10458)
* Probe memory-report files concurrently

* Simplify memory-report file probing and reuse workers

* Scope file-probe workers to large memory reports

* Fix OpenAPI consistency after optimizer description correction

* Destructure collection memory merge result exhaustively
2026-09-05 19:34:20 +02:00
Tim Visée 7b466c60aa Bump dev version to 1.19.2-dev (#10464) 2026-09-03 14:36:29 +02:00
e0110f3fe8 feat: optional dial9 Tokio telemetry behind a dial9 feature (#10442)
* Add optional dial9 Tokio telemetry behind a `dial9` feature

Integrate dial9 so storage runtimes can emit production-friendly Tokio
traces. Recording is off unless the crate is built with `--features dial9`
and DIAL9_ENABLED=true is set at runtime; with the feature off, runtime
construction is byte-for-byte unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7X6MkjY3P7wpP2MfHdTDY

* Enable dial9 CPU and schedule profiling

Turn on cpu-profiling and sched events behind the same `dial9` feature,
add the DIAL9_CPU_* / DIAL9_SCHEDULE_* env knobs, and document the frame
pointer rustflags the stack unwinder needs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7X6MkjY3P7wpP2MfHdTDY

* Harden dial9 env parsing and the writer-failure path

- Reset Cargo.lock to the branch point and re-resolve, so the diff is
  additive instead of re-resolving unrelated packages. This drops the
  heck 0.5.0 -> 0.4.1 downgrade, which sat in the default build graph and
  would have changed proto codegen identifier casing. The remaining
  non-additive entry, toml_parser 1.0.9 -> 1.1.3, is forced by
  proc-macro-crate via dial9-trace-format-derive.
- Parse DIAL9_* booleans the way dial9 does, accepting 1/y/yes/on and
  0/n/no/off and warning on anything else. `str::parse::<bool>` took only
  exact lowercase true/false, so DIAL9_CPU_PROFILE_ENABLED=0 silently left
  99 Hz sampling on and DIAL9_ENABLED=1 silently left recording off.
- Require the numeric knobs to be positive. A zero disk budget made dial9
  evict everything and stop recording within seconds while the log still
  reported telemetry enabled.
- Treat a set-but-empty DIAL9_TRACE_DIR as unset. It skipped the /tmp
  fallback and wrote up to the full budget into the working directory,
  which is /qdrant next to storage/ in the official image.
- Return a disabled guard as soon as the trace writer fails, before
  with_cpu_profiling and with_sched_events run. Those start their profilers
  eagerly, opening a perf event per thread and installing a process-global
  signal handler that build() would then discard.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7X6MkjY3P7wpP2MfHdTDY

* Correct the dial9 docs and give them their own section

- `--cfg tokio_unstable` is required for any task data at all, not merely
  for fuller coverage: dial9's poll, spawn and terminate hooks are all
  `#[cfg(tokio_unstable)]`, and nothing in the repo sets the flag. Without
  it there is no task timeline and DIAL9_TASK_TRACKING_ENABLED does nothing.
- Document `-C debuginfo=2`. `[profile.perf]` inherits `release` and sets no
  `debug` key, so the documented build symbolized off the ELF symtab with
  inlined callees collapsed and no file or line, unlike `[profile.bench]`
  which sets `debug = true` for this reason.
- Move the dial9 material out from between the feature list and the prose
  that belongs to it. Those paragraphs describe `tracing` instrumentation
  and read as dial9's when the example is wedged in front of them, which
  points readers at `#[tracing::instrument]` for a tool that records Tokio
  runtime events and no tracing spans.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7X6MkjY3P7wpP2MfHdTDY

* Use cfg_select!

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: timvisee <tim@visee.me>
2026-09-03 11:16:38 +02:00
3e82341980 Update-only writer: leave optimizing targets alone and create fresh appendable segments (#10416)
* feat: create appendable segments when the write target is optimizing or the shard is empty

* review: SegmentManifestState::is_writable, caller-supplied temp dir, uuid from token

- `SegmentManifestState::is_writable` with a full match replaces the ad-hoc
  `matches!` in the manifest enumerator.
- `ListedSegment` is destructured in `open` so every field is accounted for.
- `create_appendable_from` is test-only; `create_appendable` is the API.
- `create_appendable` builds the scratch segment in a caller-supplied local
  `temp_path` (conventionally `<shard>/temp_segments`) instead of the system
  temp dir, and takes the uuid from the build token instead of parsing the path.

Upload speed of `copy_dir_via` is tracked in #10433.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: generall <andrey@vasnetsov.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 10:36:20 +02:00
Andrey VasnetsovandClaude Fable 5 01ddb5cc65 [UIO] Split async into extension traits, implement only where genuinely async (#10424)
* Split async IO into extension traits; only async-capable backends implement them

Move `read_bytes_async` / `open_async` off the universal `UniversalRead` /
`UniversalReadFs` traits into dedicated extension traits, `UniversalReadAsync`
and `UniversalReadFsAsync` (traits/async_io.rs). Only backends with a genuine
async story implement them — the blob family, the disk caches layered over it,
and a trivial ready-impl for mmap (tests and the mmap lookup path) — each in a
dedicated async_io.rs next to its sync impl.

`CachedFs` now requires its inner filesystem to be `UniversalReadFsAsync`; the
requirement reaches segment code through one supertrait bound on
`UniversalReadExt`. io_uring implements no async surface anymore: the
tokio_uring bridge thread, its tests, the musl-gated tokio-uring dependency,
and the `IoUringFile` read-only-segment wiring (`UniversalReadExt` impl and
the *RoIoUring condition-checker variants) are deleted — io_uring is not a
read-only-segment backend.

The payoff for live reload: `CachedFs::resolve_prefetched` awaits every parked
prefetch, and the edge refresh flow now runs preload -> resolve -> reload, so
the per-segment write locks never wait on IO.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Decouple UniversalReadExt from the async filesystem requirement

UniversalReadExt is condition-checker dispatch; it never consumed the async
surface itself. Drop its `Fs: UniversalReadFsAsync` supertrait bound and relax
CachedFs's struct-level bound back to `UniversalReadFs` — the async requirement
now lives on the one impl that consumes it, `CachedReadFs for CachedFs`
(schedule_open parks the inner filesystem's `open_async` futures).

The bound then surfaces only on the lifecycle/preload impl blocks that go
through CachedReadFs (segment open, live-preload/reload, config reload, edge
load/refresh); the search path carries no async bounds at all.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 19:32:46 +02:00
Luis CossíoandTim Visée 44e54f4539 [edge] open and reload IO don't block search pool (#10366)
* existing segments: wait for IO outside of search pool

* new segments: wait for IO outside of search pool

* extract reload into separate function

* Update lib/edge/Cargo.toml

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
2026-09-01 10:06:29 -04:00
Luis Cossío 0798695099 [UIO] Segment live_preload waits for all IO before returning (#10357)
* `LiveReload::live_preload` returns futures

* await reopens and reloads concurrently
2026-09-01 10:06:29 -04:00
dependabot[bot]andqdrant-cloud-bot 9d62fa3ade build(deps): bump tracing-tracy from 0.11.4 to 0.12.0 (#10413)
* build(deps): bump tracing-tracy from 0.11.4 to 0.12.0

Bumps [tracing-tracy](https://github.com/nagisa/rust_tracy_client) from 0.11.4 to 0.12.0.
- [Commits](https://github.com/nagisa/rust_tracy_client/compare/tracing-tracy-v0.11.4...tracing-tracy-v0.12.0)

---
updated-dependencies:
- dependency-name: tracing-tracy
  dependency-version: 0.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: bump tracing-tracy version in Cargo.toml to match lockfile

Dependabot updated Cargo.lock to 0.12.0 but left Cargo.toml on 0.11.4,
so cargo --locked failed.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: qdrant-cloud-bot <111755117+qdrant-cloud-bot@users.noreply.github.com>
2026-09-01 11:23:32 +02:00
dependabot[bot] f1d1cf632c build(deps): bump actix-cors from 0.7.1 to 0.7.2 (#10408)
Bumps [actix-cors](https://github.com/actix/actix-extras) from 0.7.1 to 0.7.2.
- [Release notes](https://github.com/actix/actix-extras/releases)
- [Commits](https://github.com/actix/actix-extras/compare/cors-v0.7.1...cors-v0.7.2)

---
updated-dependencies:
- dependency-name: actix-cors
  dependency-version: 0.7.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 08:11:26 +02:00
dependabot[bot] 5d0d978790 build(deps): bump prost-wkt-types from 0.7.1 to 0.7.2 (#10415)
Bumps [prost-wkt-types](https://github.com/fdeantoni/prost-wkt) from 0.7.1 to 0.7.2.
- [Release notes](https://github.com/fdeantoni/prost-wkt/releases)
- [Changelog](https://github.com/fdeantoni/prost-wkt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fdeantoni/prost-wkt/compare/v0.7.1...v0.7.2)

---
updated-dependencies:
- dependency-name: prost-wkt-types
  dependency-version: 0.7.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 07:56:27 +02:00
dependabot[bot] f48cca97b3 build(deps): bump log from 0.4.33 to 0.4.34 (#10409)
Bumps [log](https://github.com/rust-lang/log) from 0.4.33 to 0.4.34.
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.33...0.4.34)

---
updated-dependencies:
- dependency-name: log
  dependency-version: 0.4.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 07:52:25 +02:00
dependabot[bot] 48d1490d04 build(deps): bump uuid from 1.24.1 to 1.26.0 (#10407)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.24.1 to 1.26.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.24.1...v1.26.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-version: 1.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 07:37:39 +02:00
dependabot[bot] 9ddd00f3fa build(deps): bump flate2 from 1.1.9 to 1.1.10 (#10410)
Bumps [flate2](https://github.com/rust-lang/flate2-rs) from 1.1.9 to 1.1.10.
- [Release notes](https://github.com/rust-lang/flate2-rs/releases)
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.1.9...1.1.10)

---
updated-dependencies:
- dependency-name: flate2
  dependency-version: 1.1.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 07:29:40 +02:00
dependabot[bot] 343832c0dd build(deps): bump syn from 3.0.3 to 3.0.4 (#10412)
Bumps [syn](https://github.com/dtolnay/syn) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/3.0.3...3.0.4)

---
updated-dependencies:
- dependency-name: syn
  dependency-version: 3.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 07:24:37 +02:00
dependabot[bot] a133cd169a build(deps): bump actix-multipart from 0.8.0 to 0.8.1 (#10411)
Bumps [actix-multipart](https://github.com/actix/actix-web) from 0.8.0 to 0.8.1.
- [Release notes](https://github.com/actix/actix-web/releases)
- [Changelog](https://github.com/actix/actix-web/blob/main/CHANGES.md)
- [Commits](https://github.com/actix/actix-web/compare/multipart-v0.8.0...multipart-v0.8.1)

---
updated-dependencies:
- dependency-name: actix-multipart
  dependency-version: 0.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 07:23:27 +02:00
dependabot[bot] d732ae26bb build(deps): bump actix-web from 4.14.1 to 4.15.0 (#10414)
Bumps [actix-web](https://github.com/actix/actix-web) from 4.14.1 to 4.15.0.
- [Release notes](https://github.com/actix/actix-web/releases)
- [Changelog](https://github.com/actix/actix-web/blob/main/CHANGES.md)
- [Commits](https://github.com/actix/actix-web/compare/web-v4.14.1...web-v4.15.0)

---
updated-dependencies:
- dependency-name: actix-web
  dependency-version: 4.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 07:22:45 +02:00
Luis CossíoandClaude Fable 5 2279c4a79b [UIO] UniversalReadFs::open_async (#10352)
* `UniversalReadFs::open_async`

* `schedule_open` polls once

Scheduled opens must start eagerly: sync backends complete their
`open_async` on the first poll, preserving the prefetch contract
(handles outlive later file deletions/replacements). Moved down from
the integration branch so this PR stays green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 12:35:50 -04:00
Luis Cossío dc3b888075 [UIO] impl IoUringFile::read_bytes_async (#10288)
* bridge async with a dedicated `tokio_uring` thread

* impl `IoBufMut` for `AVec`

* [AI] Add tests

* [AI] handle O_DIRECT

odirect test
2026-08-31 12:35:49 -04:00
Arnaud GourlayandClaude Opus 5 384cb79b15 build(deps): disable unused default features (#10331)
Drops 6 crates from the release build and 7 from the workspace test
build, with no source changes.

- geo: no triangulation, only Contains/Intersects/Haversine (spade, earcut)
- jsonwebtoken: HS256 from_secret only, no PEM keys (pem, simple_asn1)
- tar: nothing sets unpack_xattrs, which defaults to false (xattr)
- duplicate: every duplicate_item names its module (proc-macro2-diagnostics)
- pprof: no C++ frames to demangle (cpp_demangle)

Also promotes duplicate to a workspace dependency.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 09:25:08 +02:00
dependabot[bot]andqdrant-cloud-bot 88196be010 build(deps): bump tango-bench from 0.7.2 to 0.8.0 (#10317)
* build(deps): bump tango-bench from 0.7.2 to 0.8.0

Bumps [tango-bench](https://github.com/bazhenov/tango) from 0.7.2 to 0.8.0.
- [Release notes](https://github.com/bazhenov/tango/releases)
- [Commits](https://github.com/bazhenov/tango/compare/v0.7.2...v0.8.0)

---
updated-dependencies:
- dependency-name: tango-bench
  dependency-version: 0.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: drop deprecated tango_main for tango-bench 0.8.0

tango_benchmarks! now generates main(); tango_main! is a deprecated no-op.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: qdrant-cloud-bot <111755117+qdrant-cloud-bot@users.noreply.github.com>
2026-08-25 11:42:42 +02:00
qdrant-cloud-botanddependabot[bot] 2346dfe4ec build(deps): bump serde_with to 3.22.0 without default features (#10329)
* build(deps): bump serde_with from 3.21.0 to 3.22.0

Bumps [serde_with](https://github.com/jonasbb/serde_with) from 3.21.0 to 3.22.0.
- [Release notes](https://github.com/jonasbb/serde_with/releases)
- [Commits](https://github.com/jonasbb/serde_with/compare/v3.21.0...v3.22.0)

---
updated-dependencies:
- dependency-name: serde_with
  dependency-version: 3.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): disable serde_with default features

Avoid pulling jiff timezone DB features via serde_with's std weak
dependencies; we only need macros and alloc.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-25 11:07:55 +02:00
dependabot[bot] 3a34c6ae54 build(deps): bump ordered-float from 5.3.0 to 5.5.0 (#10316)
Bumps [ordered-float](https://github.com/reem/rust-ordered-float) from 5.3.0 to 5.5.0.
- [Release notes](https://github.com/reem/rust-ordered-float/releases)
- [Commits](https://github.com/reem/rust-ordered-float/compare/v5.3.0...v5.5.0)

---
updated-dependencies:
- dependency-name: ordered-float
  dependency-version: 5.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-25 11:00:55 +02:00
dependabot[bot] 74e5e97d58 build(deps): bump io-uring from 0.7.13 to 0.7.14 (#10319)
Bumps [io-uring](https://github.com/tokio-rs/io-uring) from 0.7.13 to 0.7.14.
- [Commits](https://github.com/tokio-rs/io-uring/compare/v0.7.13...v0.7.14)

---
updated-dependencies:
- dependency-name: io-uring
  dependency-version: 0.7.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-25 10:59:45 +02:00
dependabot[bot] a379f7349f build(deps): bump uuid from 1.24.0 to 1.24.1 (#10318)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.24.0 to 1.24.1.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.24.0...v1.24.1)

---
updated-dependencies:
- dependency-name: uuid
  dependency-version: 1.24.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-25 10:50:20 +02:00
dependabot[bot] f5474ed023 build(deps): bump cc from 1.4.3 to 1.4.4 (#10321)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.4.3...cc-v1.4.4)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.4.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-25 07:41:48 +02:00
dependabot[bot] 87a5fc1ef3 build(deps): bump actix-files from 0.6.10 to 0.7.0 (#10322)
Bumps [actix-files](https://github.com/actix/actix-web) from 0.6.10 to 0.7.0.
- [Release notes](https://github.com/actix/actix-web/releases)
- [Changelog](https://github.com/actix/actix-web/blob/v0.7.0/CHANGES.md)
- [Commits](https://github.com/actix/actix-web/compare/v0.6.10...v0.7.0)

---
updated-dependencies:
- dependency-name: actix-files
  dependency-version: 0.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-25 05:35:07 +02:00
Arnaud GourlayandClaude Opus 5 5b338115f2 Replace cgroups-rs with direct cgroup memory file reads (#10295)
* Replace cgroups-rs with direct cgroup memory file reads

We used cgroups-rs in exactly one place, to read the memory limit and
usage of our own cgroup, so read those files directly instead. Drops 34
crates from the lockfile, including the zbus stack that carries
RUSTSEC-2026-0221.

Also fixes two latent cgroup v1 bugs (the LONG_MAX unlimited sentinel
reported ~9 EB of total memory, an unreadable limit file reported 0
bytes) and the hierarchy mix-up on hybrid hosts.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Decline cgroup memory reporting when the usage read fails

Reporting a usage of 0 made available_memory_bytes claim the whole cgroup
limit as free. Fall back to sysinfo when the usage file cannot be read at
init, and keep the last known value on a failed refresh.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Keep the last known memory limit when its read fails

A transient read failure cleared the cached limit and silently fell back
to host memory while the process was still capped, the same direction of
over-reporting as the usage read. Both now keep their last known value,
and a limit lifted at runtime still clears.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Treat a malformed memory limit as an error, not as unlimited

Parse failures returned Ok(None), so garbage in the limit file cleared a
valid cached limit on refresh and read as unlimited at init. Reserve
Ok(None) for "max" and the v1 sentinel, and report anything else as
InvalidData so the last known limit survives.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 15:08:00 +02:00
dependabot[bot] 347cfdb035 build(deps): bump actix-web from 4.14.0 to 4.14.1 (#10248)
Bumps [actix-web](https://github.com/actix/actix-web) from 4.14.0 to 4.14.1.
- [Release notes](https://github.com/actix/actix-web/releases)
- [Changelog](https://github.com/actix/actix-web/blob/main/CHANGES.md)
- [Commits](https://github.com/actix/actix-web/compare/web-v4.14.0...web-v4.14.1)

---
updated-dependencies:
- dependency-name: actix-web
  dependency-version: 4.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 18:19:18 -04:00
generall 4c45329bfd bump syn 3.0.3 2026-08-17 22:46:52 +02:00
dependabot[bot] 78d073a71f build(deps): bump async-trait from 0.1.91 to 0.1.92 (#10251)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.91 to 0.1.92.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.91...0.1.92)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-version: 0.1.92
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 22:30:12 +02:00
dependabot[bot] feaac717e6 build(deps): bump stumpalo from 0.5.1 to 1.0.0 (#10245)
Bumps stumpalo from 0.5.1 to 1.0.0.

---
updated-dependencies:
- dependency-name: stumpalo
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 22:22:07 +02:00