Commit Graph

4846 Commits

Author SHA1 Message Date
Andrey Vasnetsov
75434ca565 implement all point update operation constructors (#7424) 2025-10-20 12:39:01 +02:00
Roman Titov
e01957a4ee Move PlannedQuery and QueryScrollRequestInternal into shard crate (#7417) 2025-10-20 11:52:44 +02:00
Andrey Vasnetsov
56a9610e32 edge filter conversions (#7423)
* initial filter conversion structure

* implement match conditions

* implement range condition

* implement filter condition

* implement geo conditions

* fmt

* finish field conditions

* implement more conditions

* implement nested + expose python exports

* fix spelling
2025-10-20 10:36:12 +02:00
Andrey Vasnetsov
4c95682908 rollback pyvector implementation (#7422) 2025-10-19 19:06:13 +02:00
Tim Visée
b067a7b3f8 Minor Gridstore improvements (#7415)
* Explicitly use C memory representation for Gridstore value pointers

* Inline pure function

* Grow tracker file to be next multiple of two

* In debug builds, panic if getting out of bound point from Gridstore

* Also represent region gaps as C struct

* Remove debug assertion

* Adjust file size test
2025-10-17 13:59:03 +02:00
Andrey Vasnetsov
037c27200f use mutex to ensure sequential segment flushed + await on drop (#7416) 2025-10-17 13:49:55 +02:00
Andrey Vasnetsov
c184ec8833 bump WAL commit (#7413) 2025-10-16 15:20:54 +02:00
eltu
aa0f49798e Full-Text Index ASCII Folding (Normalization) (#7408)
* Add ASCII folding to tokenization process

Introduced an optional ASCII folding feature within the `TokensProcessor` to normalize non-ASCII characters to their ASCII equivalents. Updated tests and documentation to reflect the changes.

* Refactor tokenization code for improved readability and maintainability

Reorganized and reformatted the tokenization module, including `TokensProcessor` initialization and ASCII folding mappings for better clarity. Updated tests to align with the changes.

* Update test cases to reflect optional tokenizer settings changes

Adjusted `ascii_folding`, `lowercase`, and `phrase_matching` settings in tests to `None` where applicable, aligning with updates in tokenizer configuration defaults.

* address review remarks

* fix codespell

* thx coderabbit

* Don't copy tokens that are already ASCII

* Shrink folded string to fit

---------

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>
Co-authored-by: timvisee <tim@visee.me>
2025-10-16 13:53:01 +02:00
xzfc
e640a78316 Refactor: merge _search_on_level into search_on_level (#7403)
* Call search_on_level instead of _search_on_level

* Inline _search_on_level into search_on_level

* Inline _search_on_level_with_vectors into search_on_level_with_vectors
2025-10-16 09:30:45 +00:00
Roman Titov
969cc82018 Move ShardQueryRequest into shard crate (#7410) 2025-10-15 16:38:22 +02:00
Luis Cossío
163222930d Feedback query scorer (#7359)
* no manual impl for Serialize and Hash

* new feedback query

* construct query scorer

* simplify formula

* better comment

* make it easier to add other feedback formulas

* rename query -> target

* rename in async raw scorer

* rename formula -> strategy

* better comments

* rename to Simple strategy

* clippyyyyy

* oops, reenable conditional compilation

* Fundamental refactor to precompute pair score

* rename FeedbackScorer -> FeedbackQuery

This type implements `Query` trait, not `Scorer`.`
2025-10-15 10:31:18 -03:00
Roman Titov
6bbe27f8ec Move FormulaInternal into shard crate (#7409) 2025-10-15 15:17:41 +02:00
Andrey Vasnetsov
05ee4d15c3 async update operation (#7407)
* make update worker async

* fix missing async signal send

* Simplify and flatten update worker internals

---------

Co-authored-by: timvisee <tim@visee.me>
2025-10-15 11:58:41 +02:00
Andrey Vasnetsov
0101822998 make flush worker loop async (#7405)
* make flush worker loop async

* await flush worker properly finishes

* simplify flush await

* Improved future select, inline return

---------

Co-authored-by: timvisee <tim@visee.me>
2025-10-15 11:23:43 +02:00
Andrey Vasnetsov
8b2d73ac19 address parallel flushing problem in snapshot creation (#7404)
* address parallel flushing problem in snapshot creation

* explicit flush in test
2025-10-14 18:28:25 +02:00
Andrey Vasnetsov
b8590a9a24 single thread flush (#7388)
* flush all segments in one thread sequentially

* bonus: move flush-related functions into dedicated file

* Minor comment tweaks

* await for flush on segment holder level

* fmt

* Minor improvement, preallocate vector for payload index flushers

* Remove invalid comment

---------

Co-authored-by: timvisee <tim@visee.me>
2025-10-14 16:39:28 +02:00
Andrey Vasnetsov
5abb9ead76 add test for shard recovery after partial flush (#7402)
* add test for shard recovery after partial flush

* force flush with explicit fucntion

* Stop flush worker before explicitly flushing again

---------

Co-authored-by: timvisee <tim@visee.me>
2025-10-14 16:35:48 +02:00
Andrey Vasnetsov
02de826748 fix segment repair on load (#7400)
* fix segment repair on load

* workaround for rocksdb

* Minor comment tweaks

* In in memory ID tracker, unset version first before dropping mapping

* rename cleanup_versions into fix inconsistencies

---------

Co-authored-by: timvisee <tim@visee.me>
2025-10-14 14:06:50 +02:00
xzfc
10ebd1851d Use fs_err::exists and fs_err::tokio::try_exists (#7401) 2025-10-14 09:16:55 +00:00
dependabot[bot]
03c1b607ad build(deps): bump jsonwebtoken from 9.3.1 to 10.0.0 (#7397)
* build(deps): bump jsonwebtoken from 9.3.1 to 10.0.0

Bumps [jsonwebtoken](https://github.com/Keats/jsonwebtoken) from 9.3.1 to 10.0.0.
- [Changelog](https://github.com/Keats/jsonwebtoken/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Keats/jsonwebtoken/compare/v9.3.1...v10.0.0)

---
updated-dependencies:
- dependency-name: jsonwebtoken
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* Bump jsonwebtoken to 10.0, use rust_crypto backend

* Fix deprecation warning

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: timvisee <tim@visee.me>
2025-10-14 10:49:50 +02:00
dependabot[bot]
6e1b7c1040 build(deps): bump half from 2.6.0 to 2.7.0 (#7395)
* build(deps): bump half from 2.6.0 to 2.7.0

Bumps [half](https://github.com/VoidStarKat/half-rs) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/VoidStarKat/half-rs/releases)
- [Changelog](https://github.com/VoidStarKat/half-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/VoidStarKat/half-rs/compare/v2.6.0...v2.7.0)

---
updated-dependencies:
- dependency-name: half
  dependency-version: 2.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Zerocopy feature is deprecated

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: timvisee <tim@visee.me>
2025-10-14 10:38:31 +02:00
dependabot[bot]
00ca74f26f build(deps): bump reqwest from 0.12.23 to 0.12.24 (#7394)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.12.23 to 0.12.24.
- [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.12.23...v0.12.24)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.24
  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>
2025-10-14 10:22:40 +02:00
dependabot[bot]
0731705ab8 build(deps): bump cc from 1.2.40 to 1.2.41 (#7392)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.40 to 1.2.41.
- [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.40...cc-v1.2.41)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.2.41
  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>
2025-10-14 09:58:47 +02:00
dependabot[bot]
c6b1cda715 build(deps): bump sysinfo from 0.37.1 to 0.37.2 (#7391)
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.37.1 to 0.37.2.
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.37.1...v0.37.2)

---
updated-dependencies:
- dependency-name: sysinfo
  dependency-version: 0.37.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>
2025-10-14 09:46:44 +02:00
dependabot[bot]
662bc35fef build(deps): bump clap from 4.5.48 to 4.5.49 (#7396)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.48 to 4.5.49.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.48...clap_complete-v4.5.49)

---
updated-dependencies:
- dependency-name: clap
  dependency-version: 4.5.49
  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>
2025-10-13 17:20:30 -03:00
dependabot[bot]
64cbe3714f build(deps): bump slog from 2.8.0 to 2.8.2 (#7398)
Bumps [slog](https://github.com/slog-rs/slog) from 2.8.0 to 2.8.2.
- [Release notes](https://github.com/slog-rs/slog/releases)
- [Changelog](https://github.com/slog-rs/slog/blob/master/CHANGELOG.md)
- [Commits](https://github.com/slog-rs/slog/compare/v2.8.0...v2.8.2)

---
updated-dependencies:
- dependency-name: slog
  dependency-version: 2.8.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>
2025-10-13 17:19:36 -03:00
dependabot[bot]
d5072d1363 build(deps): bump parking_lot from 0.12.4 to 0.12.5 (#7393) 2025-10-13 20:18:11 +00:00
Kumar Shivendu
c0f580bddd Shard key initial state (#7371)
* Allow specifying initial state while creating shard key

* Dont wait for Active state if initial_state is set

* Generate gRPC docs and OpenAPI spec

* Apply suggestions

* Skip from scheamrs not serde

* Add integration test

* minor suggestions
2025-10-13 17:58:34 +05:30
Tim Visée
b9243c5af4 Forbid peer to join cluster with URI that is already used (#7375)
* Disallow peer to join with URI that is already used

* Add test for rejecting peer join with duplicate URI

* Improve peer rejection logic

* Try to rejoin twice, we expect a consistent result
2025-10-13 12:32:51 +02:00
xzfc
95b4bbf978 Rename HnswConfig::{copy_vectors -> inline_storage} (#7389) 2025-10-13 10:08:06 +00:00
Daniel Boros
3c6f26eced feat: handle 429 properly on infer svc (#7377)
* feat: handle 429 properly

* feat: change to rate limit error

* feat: handle http_date

* chore: remove unsued imports

* chore: make it more readable
2025-10-13 11:04:53 +02:00
tellet-q
cdae750d0b Log shard transfer abort during consensus recovery (#7373)
* Add log line about aborting transfer during consensus recovery
2025-10-13 08:55:22 +02:00
Roman Titov
e7fe24bb1b More type conversion for Qdrant on Edge Python bindings (#7372)
* Cleanup `edge::Shard::retrieve`

* Cleanup Python errors

* Cleanup `PointId` conversions

* Rename `ids` into `point_ids` in `PyShard::retrieve`

* WIP: Prototype native conversions for more types
2025-10-10 19:56:05 +02:00
Tim Visée
da5e5cd42d In Gridstore, also populate the tracker file (#7385) 2025-10-10 13:15:11 -03:00
Ivan Boldyrev
4a732a105d Docker build parameters (#7370)
* Add ARG `TARGET_CPU` to Dockerfile

* Add ARG `JEMALLOC_SYS_WITH_LG_PAGE` to Dockerfile

It allows redefining jemalloc's page size for image targeting specific
ARM machines.

Refs #3831.

* Document Docker build parameters
2025-10-10 16:35:45 +07:00
Roman Titov
8141173029 Type conversions into native Python types for Qdrant on Edge (#7367)
* Cleanup README.md

* Rename `PyResult` into `Result`

* Rename `interface` module into `types` and simplify imports

`wildcard::goes::brrr::*`

* Add `PointId` conversion

* Add `Payload` conversion

* fixup! Add `Payload` conversion

Avoid cloning `Payload` for output conversion

* fixup! Add `PointId` conversion

Fix example

* review fixes #1: fix uuid parsing, avoid .into, use custom types

* review fixes #2: rewrite point id to avoid chain if

* review fixes #3: allow ot use uuid + remove comment

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2025-10-09 19:19:56 +02:00
Andrey Vasnetsov
34596530d1 remove default explicit config for strict mode (#7369)
* remove default explicit config for strict mode

* Don't prefix commented out properties with space to remain consistent

* Don't crash test if strict mode config is not set at all

---------

Co-authored-by: timvisee <tim@visee.me>
2025-10-09 12:00:01 +02:00
Arnaud Gourlay
a24d380ee0 Investigate flaky snapshot transfer test (#7339) 2025-10-09 10:47:23 +02:00
Arnaud Gourlay
fe94fdc5ce Bump Python 3.13 on CI (#7365)
* Bump Python 3.13 on CI

* Regenerate tls certificates

---------

Co-authored-by: tellet-q <elena.dubrovina@qdrant.com>
2025-10-08 12:50:34 +02:00
Arnaud Gourlay
1fcb7a2139 Test continuous snapshot data loss (#7308)
* Continuous snapshot data loss

* assert vector & payload are present
2025-10-08 12:20:44 +02:00
tellet-q
c3ca182423 Refactor bash tests: storage-compatibility (#7299)
* Add e2e test for compatibility
2025-10-08 08:33:55 +02:00
Andrey Vasnetsov
8dd915c0b1 non appendable proxies (#7345)
* WIP: make proxy segment non-appendable

* make deleted points and index changes private to Proxy Segment

* consistently remove empty unused segment from holder on unproxifying and the end of optimization

* remove/fix obsolete test

* Fix comment, some general adjustments

* Also don't remove non-original segments

* Use ahash for map of proxy index changes

* Inline format arguments

* Simplify has point branching

* Assert that proxy flushes to latest wrapped segment version

* make vector deletetion a CoW operation

* relax debug assertions

* Update lib/shard/src/proxy_segment/mod.rs

* fix test_partial_snapshot_empty

---------

Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: Tim Visée <tim+github@visee.me>
2025-10-08 00:19:41 +02:00
Tim Visée
a1efafbbf3 Only wait for green collection status in empty snapshot test (#7360) 2025-10-07 18:12:59 +02:00
Tim Visée
3856ff6bdb Before doing actual partial snapshot tests, wait for green status (#7358) 2025-10-07 15:57:46 +02:00
Arnaud Gourlay
a0645c7319 Use AHash for ShardId HashMap (#7357) 2025-10-07 12:11:53 +02:00
dependabot[bot]
a9c6bd50ff build(deps): bump cc from 1.2.39 to 1.2.40 (#7352)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.39 to 1.2.40.
- [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.39...cc-v1.2.40)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.2.40
  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>
2025-10-07 10:36:21 +02:00
dependabot[bot]
388b733ad3 build(deps): bump fs-err from 3.1.2 to 3.1.3 (#7353)
Bumps [fs-err](https://github.com/andrewhickman/fs-err) from 3.1.2 to 3.1.3.
- [Changelog](https://github.com/andrewhickman/fs-err/blob/main/CHANGELOG.md)
- [Commits](https://github.com/andrewhickman/fs-err/compare/3.1.2...3.1.3)

---
updated-dependencies:
- dependency-name: fs-err
  dependency-version: 3.1.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>
2025-10-07 10:36:14 +02:00
dependabot[bot]
15f1320709 build(deps): bump config from 0.15.17 to 0.15.18 (#7355)
Bumps [config](https://github.com/rust-cli/config-rs) from 0.15.17 to 0.15.18.
- [Changelog](https://github.com/rust-cli/config-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-cli/config-rs/compare/v0.15.17...v0.15.18)

---
updated-dependencies:
- dependency-name: config
  dependency-version: 0.15.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>
2025-10-07 09:37:11 +02:00
dependabot[bot]
5879c2950f build(deps): bump ordered-float from 5.0.0 to 5.1.0 (#7348)
Bumps [ordered-float](https://github.com/reem/rust-ordered-float) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/reem/rust-ordered-float/releases)
- [Commits](https://github.com/reem/rust-ordered-float/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: ordered-float
  dependency-version: 5.1.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>
2025-10-07 09:36:52 +02:00
dependabot[bot]
5b85810a6b build(deps): bump tempfile from 3.22.0 to 3.23.0 (#7351)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.22.0 to 3.23.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.22.0...v3.23.0)

---
updated-dependencies:
- dependency-name: tempfile
  dependency-version: 3.23.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>
2025-10-07 09:36:15 +02:00