v1.18.0
Breaking Changes📦 qdrantView on GitHub →
⚠ 2 breaking✨ 5 features🐛 25 fixes🔧 4 symbols
Summary
This release introduces significant performance and stability enhancements, including the TurboQuant quantization variant and improved memory management features. Several critical bugs related to indexing, recovery, and cluster operations have also been resolved.
⚠️ Breaking Changes
- RocksDB support has been fully removed from the storage handling, simplifying the architecture. Users relying on RocksDB must migrate to the remaining storage backend.
- Internal gRPC endpoints now enforce API key/JWT authentication. Access to these endpoints will be denied without proper credentials.
Migration Steps
- If you were using RocksDB storage, you must migrate your data to a supported storage backend as RocksDB support has been removed.
✨ New Features
- Added TurboQuant quantization variant, offering 8x vector compression with no recall tax.
- Added API endpoints to create and delete named vectors within existing collections.
- Implemented deep memory reporting to show a breakdown of memory usage for storage components.
- Introduced low memory mode, which forces all components to open on disk to minimize out-of-memory crashes on startup.
- Added a strict mode parameter (`max_resident_memory_percent`) to reject updates when memory usage is high.
🐛 Bug Fixes
- Fixed stop words always being lowercased over gRPC even when disabled.
- Fixed datetime parsing for the `YYYY-MM-DDTHH:MM` format.
- Fixed IsEmpty condition check on freshly rebuilt null index.
- Fixed nested MatchTextAny queries not utilizing the full-text index.
- Fixed geo circle hash bound checks.
- Fixed phrase matching crossing string-array element boundaries.
- Fixed hard panic occurring when there are multiple validation errors.
- Disallowed sparse vectors with an empty name.
- Fixed GPU not being utilized for HNSW when the main graph is absent.
- Fixed infinite loop during HNSW sub-graph building.
- Fixed panic when a snapshot path contains non-UTF-8 characters.
- Fixed hard panic on corrupt collection alias file, now returning an error instead.
- Fixed disk IO measurement not always occurring in the map index.
- Fixed chunk capacity reservation leading to inefficient allocation.
- Fixed payload index flushers absorbing cancellations as errors.
- Fixed snapshot files not being cleaned up upon snapshot restore failure.
- Fixed clearing the page cache not being reliable; added missing candidates.
- Fixed map index listing a modified file as immutable.
- Fixed data race causing the disk watcher not to wake up, leading to timeouts.
- Made resharding operations idempotent, fixing cluster state corruption upon crash.
- Fixed slow request logging for read operations that encountered shard-level errors.
- Fixed allocation of unnecessary async search workers, reducing thread count.
- Fixed writing to old shards during resharding down after a write hashring commit, preventing missing shard errors.
- Fixed edge case sparse vector search panic during score post-processing.
- Fixed various upstream Raft consensus correctness bugs.