Commit Graph
5274 Commits
Author SHA1 Message Date
xzfc 5c8da73447 Fix hnsw_incremental_build benchmark (#7978)
* Fix hnsw_incremental_build benchmark

* More docs
2026-02-09 23:26:12 +01:00
Ivan Pleshkov 411011477d Remove ChunkedVectorStorage trait (#7977)
* Remove ChunkedVectorStorage trait

* fix rocksdb feature

* fix multidense rocksdb
2026-02-09 23:26:00 +01:00
b2ad969b11 in ram single mmap file (#7971)
* WIP: introduce new vector store type

* handling of InRamMmap

* fmt

* feature-flag

* fmt

* Use if else

Co-authored-by: Roman Titov <ffuugoo@users.noreply.github.com>

* Update lib/common/common/src/flags.rs

Co-authored-by: Tim Visée <tim+github@visee.me>

* also choose madvise for single-file in-ram-mmap

* simplify generics

* gpu fix

* fix bug

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
Co-authored-by: Roman Titov <ffuugoo@users.noreply.github.com>
2026-02-09 23:23:45 +01:00
Roman Titov 096f68fb68 Improve SnapshotManifest/SegmentManifest construction (#7961)
* Improve `SnapshotManifest`/`SegmentManifest` construction

* fixup! Improve `SnapshotManifest`/`SegmentManifest` construction

Fix stupidity 😬
2026-02-09 23:22:45 +01:00
Tim Visée 311ad575ef Hotfix: fix search aggregator error with limit 0 (#7972)
* Hotfix: fix search aggregator error with limit 0

* Don't handle points if limit is zero
2026-02-09 23:22:17 +01:00
Lior.Chen 9be90ebd7a fix: replica state peer id remap (#7969) 2026-02-09 23:21:53 +01:00
Tim Viséeanddependabot[bot] 7b5b54a4e7 build(deps): bump lodash in /tools/schema2openapi (#7968)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 23:21:45 +01:00
krapcys1-maker 6ab5e39f20 fix: improve datetime_range RFC3339 parse error (#7919)
* fix: improve REST datetime_range RFC3339 error message

* docs: add docstrings for datetime_range parsing

* fix: avoid serde_json intermediary for non-human-readable deserialization

* fix: avoid serde_json intermediary for non-human-readable range deserialization

* refactor(segment): reduce Condition JSON routing boilerplate

* fix(segment): preserve binary datetime deserialization compatibility

* fix(segment): preserve binary datetime deserialization

* test(segment): add datetime deserialization regression tests

* chore: rerun CI

* chore: rerun CI (2)

* refactor(segment): simplify datetime deserialization
2026-02-09 23:20:55 +01:00
xzfc de04a66d3c Sync LocalShard::optimizers (#7962) 2026-02-09 23:20:48 +01:00
xzfc 6abd5a1776 Enforce segment UUIDs (#7958)
* Swap docstrings for segment_ids/segment_uuids

Terse internal docs, detailed user-facing docs, not vice versa.

* Enforce segment UUIDs

* Export upcoming segment UUID to telemetry

* Add `optimize_for_test` wrapper

* Tune log message

Reason: the UUID is now guaranteed.

* Improve argument naming/docs
2026-02-09 23:20:44 +01:00
Kumar Shivendu cf0ae0eb81 Allow partial snapshots even when no local shard exists (#7959)
* Allow partial snapshots even when no local shard exists

* Avoid checking for empty old manifest

* Handle CollectionError::NotFound and throw error for others

* fmt

* remove comment

* Cleaner error handling

* Simplify code

* Minor fix
2026-02-09 23:19:55 +01:00
Tim Visée 07f12e1277 Fix optimizer error if segment is already under optimization (#7960) 2026-02-09 23:19:45 +01:00
Luis CossíoandTim Visée 1e23057ab8 More graceful handle of flush cancellation (#7798)
* Reapply "return an error when cancelling a flush (#7781)" (#7799)

This reverts commit 4a1103acb7.

* log::trace cancellation of components

* gracefully handle flush cancellation inside segment flusher

* Update lib/segment/src/segment/entry.rs

Co-authored-by: Tim Visée <tim+github@visee.me>

* don't wrap cancellation errors

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
2026-02-09 23:19:37 +01:00
Arnaud Gourlay 93cc834d39 Remove unecessary flag in OperationData (#7957) 2026-02-09 23:19:31 +01:00
Roman Titov 3b2cdd6b9b Always Copy-on-Write when updating payload in immutable segments (#7952) 2026-02-09 23:17:56 +01:00
Andrey Vasnetsov aeecb1f0fc Generate *.pyi files for EDGE (#7943)
* generate pui files for edge functions

* fix stup for `lambda_`
2026-02-09 23:17:27 +01:00
Luis Cossío b12abffce9 move cfg statements (#7954) 2026-02-09 23:17:23 +01:00
dependabot[bot] 6365fc3253 build(deps): bump cc from 1.2.52 to 1.2.53 (#7938)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.52 to 1.2.53.
- [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.2.52...cc-v1.2.53)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.2.53
  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-02-09 23:16:24 +01:00
dependabot[bot] 70d0c1f1d4 build(deps): bump thiserror from 2.0.17 to 2.0.18 (#7940)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 2.0.17 to 2.0.18.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.17...2.0.18)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-version: 2.0.18
  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-02-09 23:16:20 +01:00
dependabot[bot] 7653d00af4 build(deps): bump data-encoding from 2.9.0 to 2.10.0 (#7942)
Bumps [data-encoding](https://github.com/ia0/data-encoding) from 2.9.0 to 2.10.0.
- [Commits](https://github.com/ia0/data-encoding/compare/v2.9.0...v2.10.0)

---
updated-dependencies:
- dependency-name: data-encoding
  dependency-version: 2.10.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-02-09 23:16:15 +01:00
Kumar Shivenduandtimvisee 14dbd5e4cc Expose segment UUIDs in telemetry response (#7735)
* Add segment ID in telemetry response

* Migrate optimization log segment IDS to use UUIDs

* fmt

* clippy

* Bring back proxy segment SegmentEntry impl

* update openapi spec

* Bring back segment ID

* update comment

* Precompute segment uuid from filesyste while creating segment

* Update return types

* Update OpenAPI spec

* remove segment_ prefix from uuid field and use inline block

* Update OpenAPI spec

* Trigger CI

* clippy

* Improve comments to differentiate between segment id and uuid

* Remove duplicate function that shadowed segment entry function

---------

Co-authored-by: timvisee <tim@visee.me>
2026-02-09 23:16:07 +01:00
Daniel Borosandgenerall 00e0a7fc24 feat/test-timeout (#7920)
* feat: add timeout tests

* fix: timeout test

* fix: api urls

* fix: test

* feat: add staging api def

* feat: add parallel executor for tests

* fix: imports

* fix: ci/cd

* rollback openapi schema change

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2026-02-09 23:15:44 +01:00
Andrey Vasnetsov 7b9f094b13 rollback experimental fix (#7948) 2026-02-09 23:15:37 +01:00
dependabot[bot] 314f21003c build(deps): bump quote from 1.0.42 to 1.0.43 (#7937)
Bumps [quote](https://github.com/dtolnay/quote) from 1.0.42 to 1.0.43.
- [Release notes](https://github.com/dtolnay/quote/releases)
- [Commits](https://github.com/dtolnay/quote/compare/1.0.42...1.0.43)

---
updated-dependencies:
- dependency-name: quote
  dependency-version: 1.0.43
  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-02-09 23:15:32 +01:00
dependabot[bot] c5f4978d98 build(deps): bump chrono from 0.4.42 to 0.4.43 (#7941)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.42 to 0.4.43.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.42...v0.4.43)

---
updated-dependencies:
- dependency-name: chrono
  dependency-version: 0.4.43
  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-02-09 23:15:26 +01:00
dependabot[bot] 0c1e584dfc build(deps): bump rustls-pki-types from 1.13.2 to 1.14.0 (#7939)
Bumps [rustls-pki-types](https://github.com/rustls/pki-types) from 1.13.2 to 1.14.0.
- [Release notes](https://github.com/rustls/pki-types/releases)
- [Commits](https://github.com/rustls/pki-types/compare/v/1.13.2...v/1.14.0)

---
updated-dependencies:
- dependency-name: rustls-pki-types
  dependency-version: 1.14.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-02-09 23:15:21 +01:00
dependabot[bot] 3ad36e55e8 build(deps): bump url from 2.5.7 to 2.5.8 (#7936)
Bumps [url](https://github.com/servo/rust-url) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/servo/rust-url/releases)
- [Commits](https://github.com/servo/rust-url/compare/v2.5.7...v2.5.8)

---
updated-dependencies:
- dependency-name: url
  dependency-version: 2.5.8
  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-02-09 23:15:16 +01:00
dependabot[bot] b9bd1e0f5b build(deps): bump bitpacking from 0.9.2 to 0.9.3 (#7935)
Bumps [bitpacking](https://github.com/quickwit-oss/bitpacking) from 0.9.2 to 0.9.3.
- [Release notes](https://github.com/quickwit-oss/bitpacking/releases)
- [Changelog](https://github.com/quickwit-oss/bitpacking/blob/master/CHANGELOG.md)
- [Commits](https://github.com/quickwit-oss/bitpacking/commits)

---
updated-dependencies:
- dependency-name: bitpacking
  dependency-version: 0.9.3
  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-02-09 23:15:07 +01:00
dependabot[bot] 20ea670f3c build(deps): bump object_store from 0.13.0 to 0.13.1 (#7934)
Bumps [object_store](https://github.com/apache/arrow-rs-object-store) from 0.13.0 to 0.13.1.
- [Changelog](https://github.com/apache/arrow-rs-object-store/blob/main/CHANGELOG-old.md)
- [Commits](https://github.com/apache/arrow-rs-object-store/compare/v0.13.0...v0.13.1)

---
updated-dependencies:
- dependency-name: object_store
  dependency-version: 0.13.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-02-09 23:15:00 +01:00
xzfc cada712738 GET /optimizations: re-plan on each request (#7945) 2026-02-09 23:14:02 +01:00
Andrey Vasnetsovandtimvisee 2de3e774f0 async scroll (#7928)
* implementation of async batch vectors reading

* EXPERIMENT: async-io for reading on scroll

* disable on non-linux

* make retrieve sequential for test

* wip: implement vector reading via callback

* simplify operations, remove duplicates

* use batch retrieve also for post-processing search results

* clippy

* fix tests

* review fixes

* Replace big match statement with simple option filter and equal check

* Inline format arguments

---------

Co-authored-by: timvisee <tim@visee.me>
2026-02-09 23:12:40 +01:00
Andrey VasnetsovandRoman Titov 0ed3a3a5ee simplify edge config (#7933)
* simplify edge config

* Accept default vector config or explicit vector config map when creating `EdgeConfig`

* fixup! Accept default vector config or explicit vector config map when creating `EdgeConfig`

Update examples

* upd tests

* bump edge version to v0.5.0

---------

Co-authored-by: Roman Titov <ffuugoo@users.noreply.github.com>
2026-02-09 23:12:30 +01:00
Andrey Vasnetsov a68ae6dd50 do not generate new ids if not needed (#7932) 2026-02-09 23:12:22 +01:00
Luis Cossío 262ae08636 [cluster telemetry] Include shards information (#7886)
* make some existing fields optional

particularly, RemoteShardTelemetry's `searches` and `updates`, and
LocalShardTelemetry's `optimizations`

* Include shards information in cluster telemetry

* upd openapi

* nits

* only include partial snapshot info if non-empty

* fixes
2026-02-09 23:12:01 +01:00
Arnaud Gourlay eb48738cda Optimize SegmentBuilder update with proper Vec sizing (#7921) 2026-02-09 23:11:36 +01:00
Andrey Vasnetsovandtimvisee fdceb11a18 implement a new configuration for read fan-out delay (#7929)
* implement a new configuration for read fan-out delay

* upd schema

* Update read_fan_out_delay_ms comment

---------

Co-authored-by: timvisee <tim@visee.me>
2026-02-09 23:10:13 +01:00
Arnaud Gourlay fe3316e265 Optimize allocation in max_available_vectors_size_in_bytes (#7924) 2026-02-09 23:10:01 +01:00
Roman Titov da70bf13c6 Update qdrant-edge-py version to 0.4.0 (#7926)
* Update `qdrant-edge-py` version to 0.4.0

* fixup! Update `qdrant-edge-py` version to 0.4.0

🙄🙄🙄
2026-02-09 23:08:27 +01:00
Roman Titov 3184b53a32 Rename edge::Shard into edge::EdgeShard (#7925) 2026-02-09 23:08:22 +01:00
Andrey Vasnetsov ac2c18e1fe Validate vector name in matrix request (#7923)
* validate `using` param

* fix slop
2026-02-09 23:08:14 +01:00
xzfc d9d2801c71 Expose planned optimizations in API (#7784)
* Expose pending optimizations in API

* Address review comments
2026-02-09 23:07:34 +01:00
Andrey SakharovandСахаров Андрей Александрович 95603434cb [perf] Reduce unnecessary cloning (#7913)
* Reduce unnecessary cloning

* Clippy warnings fixed

* well lets revert clippy changes

* newline

---------

Co-authored-by: Сахаров Андрей Александрович <a.a.sakharov@tinkoff.ru>
2026-02-09 23:07:28 +01:00
Roman Titov 1a15be85ef Flush edge::Shard on Drop (#7911)
And add explicit `flush` and `close` methods
2026-02-09 23:07:20 +01:00
ee44157406 Prevent unoptimized updates (#7643)
* wip: wait for optimization before applying update

* implement api parameter

* nits

* fix deadloack when no optimizers are running

* release handle mutex

* Derive PartialEq

* Remove unused function

* fix missing kb conversion in threshold

* Update lib/api/src/grpc/proto/collections.proto

Co-authored-by: Tim Visée <tim+github@visee.me>

* sync comment change

---------

Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: Tim Visée <tim+github@visee.me>
2026-02-09 23:04:32 +01:00
Ivan Pleshkov 8dc1544916 Use p square to find ranges (#7733)
* use p square to find ranges

* use sample size

* add stopper checks

* review remarks

* review remarks
2026-02-09 23:04:25 +01:00
xzfc 722fa2fc31 OptimizationPlanner (#7752)
* refactor(SegmentHolder::iter): use SegmentId, not &SegmentId

* refactor(SegmentHolder): Add SegmentHolder::iter_original

* refactor: inline *Optimizer::worst_segment() into SegmentOptimizer::check_condition

* refactor(ConfigMismatchOptimizer): extract config_mismatch function

* Fix comments

* refactor: consistent variable naming

It's `segment_id`/`_segment_id`, not `idx`/`sid`/`x.0`/`_`.

* refactor(IndexingOptimizer): extract large chunks of logic

* refactor(SegmentOptimizer): simplify unwrap_proxy/handle_cancellation

* SegmentHolder: add running_optimizations counter

* OptimizationPlanner

* MergeOptimizer: allow merging two segments, update doc
2026-02-09 23:03:57 +01:00
dependabot[bot] 811cf94859 build(deps): bump proc-macro2 from 1.0.104 to 1.0.105 (#7899)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.104 to 1.0.105.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.104...1.0.105)

---
updated-dependencies:
- dependency-name: proc-macro2
  dependency-version: 1.0.105
  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-02-09 23:03:51 +01:00
dependabot[bot] b64c644fa5 build(deps): bump flate2 from 1.1.5 to 1.1.8 (#7905)
Bumps [flate2](https://github.com/rust-lang/flate2-rs) from 1.1.5 to 1.1.8.
- [Release notes](https://github.com/rust-lang/flate2-rs/releases)
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.1.5...1.1.8)

---
updated-dependencies:
- dependency-name: flate2
  dependency-version: 1.1.8
  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-02-09 23:03:47 +01:00
dependabot[bot] 30c1b5a77c build(deps): bump indexmap from 2.12.1 to 2.13.0 (#7901)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.12.1 to 2.13.0.
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.12.1...2.13.0)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-version: 2.13.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-02-09 23:03:42 +01:00
dependabot[bot] 30620c7c33 build(deps): bump zerocopy from 0.8.31 to 0.8.33 (#7904)
Bumps [zerocopy](https://github.com/google/zerocopy) from 0.8.31 to 0.8.33.
- [Release notes](https://github.com/google/zerocopy/releases)
- [Changelog](https://github.com/google/zerocopy/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google/zerocopy/compare/v0.8.31...v0.8.33)

---
updated-dependencies:
- dependency-name: zerocopy
  dependency-version: 0.8.33
  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-02-09 23:03:37 +01:00