Luis Cossío
6ca50680f5
Buffered mutable bool index ( #6977 )
...
* use buffered dynamic flags in bool index
* put base_dir out of Storage
* Adjust populate comment
---------
Co-authored-by: timvisee <tim@visee.me >
2025-08-06 09:10:27 -05:00
Ivan Pleshkov
766b527ac8
Appendable quantization storage ( #6935 )
...
* appendable qunatization storage
fmt
deprecate count in quantization config
fix arm tests build
qunatized storage vectors count
fix ci
are you happy clippy
fix compat tests
undo rename to `deprecated_count`
remove flusher
remove obsolete functions, don't use hardware counter in ram storage
are you happy clippy
fix gpu build
check ci when revert option
revert last commit
* debug ci
* log offsets
* log offsets
* fix compatibility tests
* deprecate count
* fix arm tests
* fix benches
* Update lib/quantization/src/encoded_vectors_binary.rs
Co-authored-by: xzfc <5121426+xzfc@users.noreply.github.com >
---------
Co-authored-by: xzfc <5121426+xzfc@users.noreply.github.com >
2025-08-06 13:51:01 +02:00
xzfc
542f03b033
TestRawScorerProducer to use VectorStorageEnum ( #6965 )
...
* TestRawScorerProducer to use VectorStorageEnum
* TestRawScorerProducer:🆕 accept distance as an argument
* Drop TMetric from TestRawScorerProducer
* Remove `impl VectorStorage for TestRawScorerProducer`
* Add TestRawScorerProducer::internal_scorer
* Remove TestRawScorerProducer::get_vector
* Rename TestRawScorerProducer::{get_scorer => scorer}
2025-08-06 09:41:13 +00:00
Kumar Shivendu
a4220fdd84
Partial snapshots update recovery ts ( #6980 )
...
* Update recovery ts despite empty partial snapshots
* fmt
* apply suggestions with some improvements
2025-08-06 10:48:03 +02:00
Arnaud Gourlay
255dd51e5a
Fix Clippy 1.89 ( #6981 )
2025-08-05 18:06:04 +02:00
Arnaud Gourlay
a2b9a50381
Remove hardware measurement from fulltext index ( #6884 )
2025-08-05 17:28:49 +02:00
Tim Visée
6a116a54a9
Fix flushing of dynamic mmap flags ( #6966 )
...
* Directly flush flags, don't use single-use flusher
* Explicitly flush before resizing flags file, prevent losing dirty pages
* Don't create now obsolete flusher when opening mmap
* clippy
* Move flush call
* flush before resizing only
---------
Co-authored-by: Luis Cossío <luis.cossio@outlook.com >
2025-08-05 17:05:29 +02:00
Luis Cossío
9fb92ca55d
New mutable null index ( #6954 )
...
* Introduce BufferedDynamicFlags
* clippy and extra changes
* fix flushing
* add mutable index impl
* use MutableNullIndex instead of MmapNullIndex
* use BufferedDynamicFlags
* remove mmap_null_index
* take updates before returning the flusher
* bump total_point_count on add and remove point
* improve test case
* Only clean up mutable null index files if index exists
* Remove mention of cached in context of length
* refactor flags into a single `Option<Storage>`
---------
Co-authored-by: timvisee <tim@visee.me >
2025-08-05 17:04:40 +02:00
Luis Cossío
4d92a33f74
cleanup versions on segment repair ( #6975 )
2025-08-05 14:38:15 +02:00
Jojii
c2a9183f5f
BM25 in the Core ( #6891 )
...
* Uncouple tokenizer and TextIndexParams
* Refactor token processing in `TokenizerConfig` (#6912 )
* Refactor token processing in TokenizerConfig
* fix max length checking
* [Bm25] Execution implementation (#6939 )
* Add Bm25
* Execute BM25 if config available
* cargo format
* Add mocked tests for inference and bm25
* Properly apply InferenceType
* Fix tests
* Review remarks
* Review remarks
* Add overwritten model name fix again
* use enum instead of multiple constants
* ensure handling all fields of InferenceInput in infer_local
---------
Co-authored-by: Luis Cossío <luis.cossio@outlook.com >
* review fixes
* fmt
* spell-check
* deduplicate code
---------
Co-authored-by: Luis Cossío <luis.cossio@qdrant.com >
Co-authored-by: Luis Cossío <luis.cossio@outlook.com >
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2025-08-03 20:43:20 -06:00
Luis Cossío
a7701587f4
[decay formula] allow [0,1] range for midpoint in lin_decay ( #6959 )
...
* allow [0,1] range for midpoint in lindecay
* clippyyyyy
* Better error message
2025-08-01 13:49:54 -06:00
Roman Titov
bd34d52578
Cleanup partial snapshot stuff ( #6925 )
2025-08-01 18:33:32 +02:00
xzfc
e7038130e1
Add Distance::preprocess_vector ( #6964 )
2025-07-31 13:11:12 +00:00
xzfc
83005cd2db
QueryScorerBytes ( #6945 )
...
* Add EncodedVectorsBytes::score_point_vs_bytes
* Add QueryScorerBytes::score_bytes
* QuantizedVectors::query_scorer_bytes
* Split FilteredScorer into FilteredScorer and FilteredQuantizedScorer
2025-07-31 03:05:10 +00:00
Kumar Shivendu
76cc63359d
Bump dev version to 1.15.2-dev ( #6955 )
...
* Bump dev version to 1.15.2-dev
* Updated cargo.lock
* Trigger CI
2025-07-29 22:26:24 +05:30
Roman Titov
e8625ba903
Avoid creating partial snapshot if snapshot manifest contains no changes ( #6924 )
2025-07-29 14:18:57 +02:00
Luis Cossío
ba059b3e71
use roaring bitmap in map index ( #6926 )
2025-07-29 12:51:26 +02:00
Roman Titov
430b7925e2
Fix DateTimeWrapper parsing ( #6952 )
2025-07-29 12:41:32 +02:00
Roman Titov
22e15b9f40
Update collection-level payload index schema after recovering partial snapshot ( #6886 )
2025-07-29 12:25:24 +02:00
xzfc
9bd506d4f7
Introduce StableHash ( #6940 )
...
* Introduce StableHash
* Use SipHasher24 explicitly
2025-07-26 21:25:56 +00:00
Luis Cossío
03bbceaabb
fix flaky welford calculation test ( #6927 )
...
* use most significant digits for comparison
* use absolute or relative tolerance
2025-07-25 08:47:45 -04:00
Andrey Vasnetsov
2f44084d7e
Fix PointId Hash ( #6932 )
...
* fmt
* clippy
2025-07-24 08:31:29 +02:00
Andrey Vasnetsov
6fdf445570
UUID index bug ( #6916 )
...
* reproduce bug as unit test
* reproduce in even faster unit test
* fix alignment in mmap_hashmap
* clippy
* review fixes
2025-07-22 20:26:35 +02:00
xzfc
a959e8a671
MADV_POPULATE_READ on sequential mmaps ( #6923 )
2025-07-22 14:05:07 +02:00
dependabot[bot]
bd750eaf88
build(deps): bump roaring from 0.11.0 to 0.11.1 ( #6921 )
2025-07-22 06:46:43 +00:00
dependabot[bot]
7c3ac6f714
build(deps): bump object_store from 0.12.2 to 0.12.3 ( #6918 )
...
---
updated-dependencies:
- dependency-name: object_store
dependency-version: 0.12.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-07-22 08:22:04 +02:00
Tim Visée
b81e81c1f8
Fix checkfs in MUSL builds ( #6903 )
2025-07-20 16:15:50 +02:00
Luis Cossío
c02490a1a6
[MMR] make lazy matrix non-symmetric ( #6900 )
...
* make lazy matrix non-symmetric
* remove SymmetricMatrix
---------
Co-authored-by: generall <andrey@vasnetsov.com >
2025-07-18 00:40:14 +02:00
Luis Cossío
92c3bc810b
also handle special case ( #6898 )
2025-07-17 14:42:14 -04:00
Luis Cossío
5c51c19434
MMR with postprocessed score ( #6897 )
...
* handle score_threshold only during search
* use original score for mmr output
2025-07-17 19:49:44 +02:00
Tim Visée
6f4069e711
Preprocess query vectors, sort sparse vectors ( #6895 )
...
* Add test to assert behavior of unsorted sparse query
* Preprocess sparse vectors
* Fix typo
2025-07-17 16:11:44 +02:00
Tim Visée
a5869beb99
Deprecations for Qdrant 1.15.0 ( #6892 )
...
* Deprecate init_from
* Mark memmap_threshold as deprecated
* Mark locks API as deprecated
* Mark RBAC collection access payload filter as deprecated
* Allow deprecations in tests and benchmarks
2025-07-17 16:10:45 +02:00
Jojii
16688a6a1b
Replace Box with Either ( #6887 )
2025-07-17 11:04:43 +02:00
Luis Cossío
4f3d64ac59
[mmr] compute similarities lazily ( #6877 )
...
* compute similarities lazily
* Update lib/collection/src/collection/mmr/lazy_matrix.rs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-17 10:41:24 +02:00
Tim Visée
5ddda7e409
Don't delete payload index RocksDB if we still use RocksDB storage type ( #6888 )
2025-07-17 10:14:18 +02:00
Andrey Vasnetsov
168674973a
lowercase stemmer language for consistency ( #6889 )
2025-07-17 09:53:34 +02:00
Arnaud Gourlay
1362563c2c
Bump thread-priority 2.1.0 ( #6885 )
2025-07-16 17:14:06 +02:00
Tim Visée
cd1a31448d
Fix broken is_empty filter on new points ( #6882 )
...
* Add test to catch bug
Bug: <https://github.com/qdrant/qdrant/issues/6880 >
* Fix loading null index from wrong path
* Simplify test
* Also bump total point count when removing a point
* Add debug assertion, ensure we don't create null index in selector
* Update bug link
* Remove unused import
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-16 14:25:09 +02:00
Kumar Shivendu
e14a003404
Fix bug that causes all replicas to die if node is restarted during resharding ( #6800 )
...
* Fix bug that causes all replicas to die if node is restarted during resharding
* fix recursive async problem
* Avoid write lock unless required
* avoid using &mut when & is sufficient
* Remove is_in_progress since check_abort_resharding exists (#6806 )
* On resharding abort, only abort transfers related to current operation
* Fix resharding dead replicas improvements (#6881 )
* Apply suggestions to fix resharding dead replicas
* fmt
---------
Co-authored-by: timvisee <tim@visee.me >
2025-07-16 17:51:30 +05:30
Tim Visée
edb460a5a6
After payload index migration, delete RocksDB files ( #6873 )
...
* After payload index migration, delete RocksDB files
* Add comment on why it is safe to not clean up RocksDB files in some cases
* Update lib/segment/src/index/struct_payload_index.rs
Co-authored-by: Roman Titov <ffuugoo@users.noreply.github.com >
* Reformat
---------
Co-authored-by: Roman Titov <ffuugoo@users.noreply.github.com >
2025-07-15 16:33:53 +02:00
Tim Visée
8b38f3a831
Adjust feature flag descriptions ( #6875 )
2025-07-15 15:31:37 +02:00
Tim Visée
70477eb5a9
Enable migration from RocksDB to mutable ID tracker by default ( #6872 )
...
* Enable migration from RocksDB to mutable ID tracker by default
We planned to enable this by default in the Qdrant 1.15.0 release.
* Synchronize enable at version TODOs for other flags with planning
* Update OpenAPI spec
2025-07-15 13:34:28 +02:00
Arnaud Gourlay
f95190c82e
Do not track HW measurement when matching over a text index ( #6833 )
2025-07-15 11:30:48 +02:00
Arnaud Gourlay
a7ee4ceb51
Fix hardware counter vector_io for segment vector retrieval ( #6863 )
2025-07-15 11:30:22 +02:00
Tim Visée
70d231011b
Fix payload index migration config and edge case handling ( #6864 )
...
* Minor comment and log tweaks
* Persist payload index config when changed based on dirty flag
* Persist new index type when indices are rebuilt, they might have changed
* Still load RocksDB if some index still depends on it
* Fix typo
2025-07-15 09:45:29 +02:00
dependabot[bot]
1c8e87d238
build(deps): bump ringbuffer from 0.15.0 to 0.16.0 ( #6871 )
2025-07-15 07:25:36 +00:00
dependabot[bot]
9d4b0929ad
build(deps): bump sysinfo from 0.35.2 to 0.36.0 ( #6869 )
...
---
updated-dependencies:
- dependency-name: sysinfo
dependency-version: 0.36.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-07-15 09:08:12 +02:00
Ivan Pleshkov
6521b0df7d
bq scalar query benches ( #6831 )
...
* bq scalar query benches
* review remarks
2025-07-14 19:28:07 +02:00
Tim Visée
09bdbaf58d
In mmap payload indices, replace boxing with Either ( #6861 )
2025-07-14 15:48:34 +02:00
Roman Titov
c6e38d16a7
Avoid blocking async runtime when loading local shard ( #6862 )
2025-07-14 15:03:16 +02:00