v1.19.0
📦 qdrantView on GitHub →
✨ 7 features🐛 30 fixes⚡ 1 deprecations🔧 68 symbols
Summary
This release introduces TurboQuant 4-bit vector storage, unified memory usage strategies for collection components, and prefix matching in filters. It also includes numerous performance improvements and bug fixes across various Qdrant functionalities.
✨ New Features
- TurboQuant 4-bit as a datatype of primary vector storage, allowing for storage of 4-bit quantized vectors to spare disk space on original vectors.
- Unification of memory usage strategy for collection components using `"memory": "cold" / "cached" / "pinned"` for more fine-grained control over memory usage and performance.
- Support for `"match": {"prefix": "..."}` in `filter` to match keywords by prefix, requiring enablement in the keyword index.
- Per-query IDF corpus for sparse vector search.
- Slice filtering condition for sliced scroll / deterministic sampling.
- Global quota API for managing resource limits.
- Routing token for deterministic read routes to ensure read affinity.
🐛 Bug Fixes
- Fixes for resharding abort logic consistency.
- Corrected reading of deferred source points in copy-on-write moves.
- Prevented data loss when a payload index drop races the background segment flush.
- Fixed abort resharding live-lock.
- Buffered multi-dense offsets store to prevent reload corruption.
- Fixed empty `min_should` with non-zero `min_count` matching everything.
- Fixed optimizer data race, deferring source segment destruction until durable.
- Fixed scalar L2 quantized score shift.
- Fixed snapshot WAL clocks data race.
- Avoided allocator abort on huge limit in random search/sample/scroll.
- Fixed Point Group Search query with large limits or group sizes causing panics.
- Fixed reinitialization failing with "removed all voters" on a removed peer.
- Fixed optimizer recreation dropping sibling shard restarts on error.
- Unblocked optimizer after deleting a named vector.
- Fixed cancelled snapshot recovery dirty marker being left behind.
- Fixed `/readyz` of reinitialized peer waiting on a foreign consensus.
- Preserved empty result shape for zero-limit batches.
- Fixed drive letter parsing in Windows snapshot mappings.
- Fixed `/readyz` false positive on a freshly bootstrapped peer.
- Fixed payload index inconsistency after restart: flush-before-build.
- Stamped payload storage version on append-only clone paths.
- Fixed use-after-free in u8-quantized vector reads on owning storages.
- Returned error for missing point IDs in Query API recommend.
- Reset `first_voter` and pruned address book on first-peer `--reinit`.
- Advanced newest clocks for WAL-replay tail on load.
- Counted trailing deleted offset on mmap sparse reload.
- Clamped WAL replay target to the truncated prefix on shard load.
- Fixed resharding, on queries filter shards on all shard selectors.
- Fixed WAL data race, flushing after copy with `Segment::copy_to_path`.
- Cleaned up stale shard transfers when applying consensus.
Affected Symbols
qdrant/qdrant/pull/9669qdrant/qdrant/pull/9684qdrant/qdrant/pull/9950qdrant/qdrant/pull/9683qdrant/qdrant/pull/9661qdrant/qdrant/pull/9899qdrant/qdrant/pull/10035qdrant/qdrant/pull/9338qdrant/qdrant/pull/9113qdrant/qdrant/pull/9409qdrant/qdrant/pull/9448qdrant/qdrant/pull/9500qdrant/qdrant/pull/9332qdrant/qdrant/pull/9376qdrant/qdrant/pull/9457qdrant/qdrant/pull/9431qdrant/qdrant/pull/9662qdrant/qdrant/pull/9663qdrant/qdrant/pull/9678qdrant/qdrant/pull/9732qdrant/qdrant/pull/9726qdrant/qdrant/pull/9733qdrant/qdrant/pull/9644qdrant/qdrant/pull/9749qdrant/qdrant/pull/9778qdrant/qdrant/pull/9784qdrant/qdrant/pull/9660qdrant/qdrant/pull/9835qdrant/qdrant/pull/9811qdrant/qdrant/pull/9847qdrant/qdrant/pull/9871qdrant/qdrant/pull/9740qdrant/qdrant/pull/9845qdrant/qdrant/pull/9984qdrant/qdrant/pull/10026qdrant/qdrant/pull/9891qdrant/qdrant/pull/9721qdrant/qdrant/pull/9395qdrant/qdrant/pull/9377qdrant/qdrant/pull/9424qdrant/qdrant/pull/7849qdrant/qdrant/pull/9501qdrant/qdrant/pull/9401qdrant/qdrant/pull/9536qdrant/qdrant/pull/9518qdrant/qdrant/pull/9537qdrant/qdrant/pull/9604qdrant/qdrant/pull/9637qdrant/qdrant/pull/9610qdrant/qdrant/pull/9654qdrant/qdrant/pull/9671qdrant/qdrant/pull/9641qdrant/qdrant/pull/9686qdrant/qdrant/pull/9688qdrant/qdrant/pull/9677qdrant/qdrant/pull/9723qdrant/qdrant/pull/9774qdrant/qdrant/pull/9767qdrant/qdrant/pull/9806qdrant/qdrant/pull/9801qdrant/qdrant/pull/9638qdrant/qdrant/pull/9785qdrant/qdrant/pull/9759qdrant/qdrant/pull/9660qdrant/qdrant/pull/9851qdrant/qdrant/pull/9882qdrant/qdrant/pull/9868qdrant/qdrant/pull/9928
⚡ Deprecations
- The "none" hack for disabling the BM25 stemmer is deprecated. Use the new option to explicitly disable the BM25 stemmer instead.