--- snapshot-1781342052+++ snapshot-1789251353@@ -2,7 +2,23 @@
Release notes from qdrant
-2026-06-03T15:10:07Z tag:github.com,2008:Repository/268163609/v1.18.2 2026-06-04T07:36:19Z
+2026-09-03T12:38:23Z tag:github.com,2008:Repository/268163609/v1.19.1 2026-09-04T08:42:33Z
+
+v1.19.1
+
+
Change log
Improvements
- #10342, #10420 - Speed up and saturate memory bandwidth in quantized scoring with prefetching
- #10391, #10392, #10362, #10437, #10439, #10381 - Rework and batch 4-bit TurboQuant SIMD implementation for better performance
- #10441 - Limit query plane allocations for better search performance
- #8650 - Improve L2 cosine preprocessing performance on AVX
- #10042 - Batch deletion checks for faster full scans
- #10054, #10010, #10194 - Batch searches in HNSW for faster search
- #10099 - Skip bad items before pushing into HNSW priority queue
- #10312, #10333 - Skip point ID resolution in search post processing to improve search performance
- #10040, #10066 - Use raw payloads in shard transfer to make payload heavy shard transfers 1.5x faster
- #9760 - Make set replica state and abort transfer/resharding crash safe to prevent consensus desync
- #9786 - Make restart transfer operation crash safe to prevent consensus desync
- #10345 - Query shard status more efficiently, don't build full segment info
- #10455 - Faster memory reporting on Linux with cachestat
- #10457 - Probe segment memory utilization outside of read locks
- #10027 - Honor
max_segment_size on filter based updates - #10426 - Support fast HNSW healing cancellation to prevent blocking consensus on shard drop
- #10306 - Raise HTTP2 max pending resets on gRPC API to allow higher connection concurrency
- #10243 - Expose used CPU cores in
/metrics (cpu_cores_used) - #10132 - Extend container runtime detection, include Kubernetes and other runtimes
Bug Fixes
- #10201 - Fix data consistency, flush CoW segments before building payload index
- #10399 - Fix Gridstore panic on new page after unsafe shutdown, repairs preexisting failures
- #10205 - On aborting resharding down, don't block consensus with deferred points for along time
- #10324 - Reject vector size larger than 65536
- #10143 - Reject empty dense vectors
- #10374 - Reject mismatched dimension count in positive/negative examples of recommend average API
- #10382 - Not specifying scroll
limit would bypass max_query_limit - #10128 - Prevent underestimating
is_empty and is_null cardinality - #10101 - Fix
is_null filter for unindexed payload fields - #10341 - Fix phrase matching on unindexed payload field not respecting token positioning
- #10181 - Propagate mmap read errors back to user rather than panicking
- #10338 - Fix concurrent consensus operations awaiters dropping each other
- #9957 - Limit tracing ID by 256 bytes, not characters
- #9959 - Clamp picking random HNSW layer to lower bound of zero
Security
- #10242 - Reject
. and .. in collection names
timvisee tag:github.com,2008:Repository/268163609/v1.19.0 2026-08-05T12:00:24Z
+
+v1.19.0
+
+Change log
Features ☝️
- https://github.com/qdrant/qdrant/milestone/50 - TurboQuant 4-bit as a datatype of primary vector storage. Only store 4-bit quantized vectors and spare disk space on original vectors. [docs]
- #9669, #9684, #9950 - Unify definition of memory usage strategy for collection components. Use
"memory": "cold" / "cached" / "pinned" to define memory behavior for each individual collection component. Allows for more fine-grained control over memory usage and performance. [docs] - #9683 - Allow
"match": {"prefix": "..."} in filter to match keywords by prefix, must be enabled in keyword index. [docs] - #9661 - Per-query IDF corpus for sparse vector search [docs]
- #9899 - Slice filtering condition: sliced scroll / deterministic sampling [docs]
- #10035 - Global quota API [docs]
- #9338 - Add routing token for deterministic read routes [docs]
Improvements 👈
- #9113 - Use batched reads in vector and payload storage
- #9409 - Utilize
io_uring for payload storage - #9448 - Lower default update queue length, reduce from 1M to 200
- #9500 - Use Entry API to avoid redundant map double-lookups, improving performance
- #9332 - Enable single file mmap vector storage by default for immutable segments
- #9376 - Add option to explicitly disable BM25 stemmer; deprecate "none" hack
- #9457 - Performance improvements for facets
- #9431 - Respond HTTP 405 on cluster endpoints when in standalone mode
- #9662 - Restart consensus thread on failure instead of stopping permanently
- #9663 - Trace-log 'Missing request message' internal gRPC errors
- #9678 - Resolve filter-based update operations to point IDs before writing in WAL
- #9732 - Support snapshot recovery of streamable segments without nested
files/ dir - #9726 - Reduce memory usage for slow requests logging
- #9733 - Add time in gRPC responses
- #9644 - Set S3 user-agent on snapshot uploads
- #9749 - Lazy roaring flags bitmap and bool index counts
- #9778 - Dedup sub-hashes with AHashSet in immutable index, improving performance
- #9784 - Mark point deleted once instead of per value in immutable index, improving performance
- #9660 - Speed up TurboQuant Hadamard rotation by ~3x
- #9835 - Single inverse rotation in TurboQuant symmetric L1 scoring
- #9811 - Align scalar f16 metrics precision with SIMD thresholds
- #9847 - Improve error message for non-string
key in filter conditions - #9871 - Compact stored bitmask for on-disk field index deleted masks
- #9740, #9845 - Use batching in filter condition checker
- #9984 - Evict page cache of files that are mapped twice
- #10026 - Serialize snapshot recoveries of the same shard
- #9891 - Report effective (cgroup) CPU, RAM and disk in telemetry
- #9721 - Use jemalloc 5.3.1 to support page sizes larger than 4KB on aarch64 systems
Bug Fixes 👊
- #9395 - Fixes for resharding abort logic consistency
- #9377 - Read deferred source point in copy-on-write move
- #9424 - Fix data loss when a payload index drop races the background segment flush
- #7849 - Fix abort resharding live-lock
- #9501 - Buffer multi-dense offsets store to prevent reload corruption
- #9401 - Fix empty
min_should with non-zero min_count matching everything - #9536 - Fix optimizer data race, defer source segment destruction until durable
- #9518 - Fix scalar L2 quantized score shift
- #9537 - Fix snapshot WAL clocks data race
- #9604, #9637 - Avoid allocator abort on huge limit in random search/sample/scroll
- #9610 - Fix for Point Group Search query with large limits or group sizes cause panics
- #9654 - Fix reinit failing with "removed all voters" on a removed peer
- #9671 - Fix optimizer recreation dropping sibling shard restarts on error
- #9641 - Unblock optimizer after deleting a named vector
- #9686 - Fix cancelled snapshot recovery dirty marker being left behind
- #9688 - Fix
/readyz of reinitialized peer waiting on a foreign consensus - #9677 - Preserve empty result shape for zero-limit batches
- #9723 - Fix drive letter parsing in Windows snapshot mappings
- #9774 - Fix
/readyz false positive on freshly bootstrapped peer - #9767 - Fix payload index inconsistency after restart: flush-before-build
- #9806 - Stamp payload storage version on append-only clone paths
- #9801 - Fix use-after-free in u8-quantized vector reads on owning storages
- #9638 - Return error for missing point IDs in Query API recommend
- #9785 - Reset
first_voter and prune address book on first-peer --reinit - #9759 - Advance newest clocks for WAL-replay tail on load
- #9660 - Count trailing deleted offset on mmap sparse reload
- #9851 - Clamp WAL replay target to the truncated prefix on shard load
- #9882 - Fix resharding, on queries filter shards on all shard selectors
- #9868 - Fix WAL data race, flush after copy with
Segment::copy_to_path - #9928 - Clean up stale shard transfers when applying consensus snapshot
- #9930 - Honor applied_seq during WAL replay only under prevent_unoptimized
- #10005 - Fix TurboQuant quantized vector layout alignment
- #9992 - Flush after pref-illing deleted vectors
- #10059 - Clear joint consensus fields on first peer reinit
- #9105, #9410, #9317 - Fixes for handling of creation and deletion of named vectors
- #10085 - Fix path traversal vulnerability in S3 based snapshots
Deprecations 👇
- #9982 - Remove deprecated search endpoints from OpenAPI, deprecate them in gRPC
- #10020 - Make deprecated
on_disk_payload optional in the REST schema - #10035 - Deprecates
max_resident_memory_percent of strict mode in favor of global quota API
Web UI 👐
generall tag:github.com,2008:Repository/268163609/v1.18.3 2026-07-17T14:09:13Z
+
+v1.18.3
+
+Change log
Bug Fixes
- #9882 - Fix query errors when using shard keys while resharding
timvisee tag:github.com,2008:Repository/268163609/backup-batch-facet-postings-47207f6b2 2026-06-17T22:20:49Z
+
+backup-batch-facet-postings-47207f6b2
+
+refactor and apply to filter as id iterator
coszio tag:github.com,2008:Repository/268163609/v1.18.2 2026-06-04T07:36:19Z
v1.18.2
@@ -26,20 +42,4 @@
v1.16.3
-Change log
Improvements
- #7755, #7588 - Respect search and point retrieve timeout when trying to access segments
- #7685 - Respect telemetry timeout when fetching shard statistics
- #7715 - Log snapshot download duration and speed
Bug fixes
- #7787, #7791 - Fix WAL delta transfer corrupting replica after a previous full transfer was aborted
- #7801, #7805 - Fix flush losing changes on transient disk IO errors, potentially corrupting data
- #7792 - Fix incorrectly aborting shard transfers when dropping unrelated shard
- #7741 - Fix flush error in Gridstore, potentially corrupting data when quickly alternating inserts/deletes
- #7702 - Fix flush data race in Gridstore, potentially corrupting data when storage is cleared in parallel
- #7759, #7782 - Fix handling of collection names with weird characters, breaking snapshot transfers for example
- #7788 - Fix snapshot metrics not always reporting when zero (
snapshot_{creation,recovery}_running, snapshot_created_total) - #7783 - Fix incorrectly reporting optimization errors in telemetry on panic
- #7765 - Fix slow shutdown on SIGINT when optimizations are running
- #7690 - Fix Qdrant not building on Windows ARM64
- #7683 - Keep RocksDB support until 1.18.0 in development builds
timvisee tag:github.com,2008:Repository/268163609/v1.16.2 2025-12-04T12:23:07Z
-
-v1.16.2
-
-Change log
Improvements
- #7607 - Improve request timeout handling for telemetry and metrics
- #7623 - Add user agent to HTTP requests sent by Qdrant server
Bug fixes
- #7674 - Fix critical WAL bug that could break consensus or cause data corruption on restart
- #7684 - Fix consensus crash when applying consensus snapshot with non-replicated collection
- #7620 - Fix panic during search on segments with empty HNSW graph
- #7629, #7640, #7673 - Fix shard resource cleanup when shard is replaced, prevent deadlock on small CPUs
- #7621, #7626 - Fix payload index storage still flushing after removal, fixing data corruption and IO errors on Windows
- #7624, #7627 - Fix Gridstore storage still flushing after wipe, fixing data corruption and IO errors
- #7614, #7618 - Fix Docker/WSL on Windows with bind mount corrupting storage
- #7678 - Fix
collections_vector_total metric reporting -0.0 if there are no vectors - #7649 - Also report
collection_indexed_only_excluded_points metric if zero
timvisee tag:github.com,2008:Repository/268163609/v1.16.1 2025-11-25T18:17:13Z
-
-v1.16.1
-
-Change log
Improvements
- #7514, #7572 - Make batch queries up to 3 times faster on full scans by reading each point only once
- #7551 - Actively migrate vector, payload and payload index storage from RocksDB into Gridstore on startup for better and more predictable performance
- #7579 - Add 60s internal timeout for telemetry/metrics endpoints to prevent long hanging tasks
- #7557 - Add validation to restart shard transfer operation
- #7446 - Defer Gridstore flushing to make flushing behavior consistent with all other storage components
- #7580 - Improve consensus WAL compaction logging to aid debugging
- #7598 - Make timeout for inference requests user configurable
Bug fixes
- #7564 - Fix panic at startup on old clusters with user defined sharding, if not updated to Qdrant 1.15.5 first
- #7577 - Fix breaking Raft by killing node at specific time during consensus snapshot, preventing potential crash loop
- #7587 - Fix corrupting WAL with broken flush edge case after WAL is cleared or truncated
- #7570 - Fix incorrect rescoring default on mutable segments when using binary quantization
- #7569, #7575 - Spawn search/update tasks on the correct runtime, significantly reduce number of general/actix threads
- #7558 - Fix data race in shard transfers, wait on transfer to start before initializing shards
- #7556 - Fix incorrect log message when failing to read lock segment for some time
timvisee tag:github.com,2008:Repository/268163609/v1.16.0 2025-11-17T15:29:44Z
-
-v1.16.0
-
-Change log
Features 🌰
- https://github.com/qdrant/qdrant/milestone/33?closed=1 - Inline Storage: Add option to inline vectors in HNSW graph for efficient IO usage (docs)
- https://github.com/qdrant/qdrant/milestone/37?closed=1 - Tenant promotion mechanism for tiered multitenancy: (docs)
- Add
ReplicatePoints action to promote payload based tenant into dedicated shard key (docs) - Add fallback shard key for intelligent routing to tenants that are or are not promoted to a dedicated shard (docs)
- On shard key creation, allow to specify initial state of new replicas
- #7414 - Add ACORN-1 search method, accurate search over many filtered points at the cost of performance (docs)
- #7408 - Add ASCII folding (normalization) to full text indices, fold diacritics into ASCII characters (docs)
- #7006 - Add conditional update functionality, only apply update on points matching filter (docs)
- #7100 - Add
text_any full text filter to match any query term (docs) - #7065 - Add option to customize RRF
k parameter (docs) - #7222 - In strict mode, specify maximum number of payload indices per collection
- #7123 - Add custom key-value metadata to collections (docs)
- #7291 - Add profiler to log slow point update and read requests
Improvements 🏎️
- #7385 - When loading Gridstore, populate tracker data into memory for faster first access
- #7407, #7405 - Spawn updates and flush workers task on updates runtime, use two system threads less for each local shard
- #7413 - Use system thread on demand in WAL, use one less system thread per local shard by default
- #7468 - Use atomic bit flags on HNSW construction to significantly increase indexing performance
- #7052, #7471 - Implement AVX512 SIMD optimizations for binary quantization on modern x86_64 CPUs
- #7433 - Switch new mutable payload indices and storage from RocksDB to Gridstore for better performance
- #7508 - Enable quantization in appendable segments by default, improving search performance
- #7347 - Change default score of query-less prefetch to 1.0 to ease score boosting
- #7369 - Don't explicitly disable strict mode by default
- #7345 - Simplify internal handling of copy-on-write segments, now write incoming updates to dedicated segments directly
- #7293, #7523 - Add warnings field to collection info, report misconfiguration
- #7319, #7401 - Report more helpful error messages on file IO errors
- #7377 - When using inference, propagate rate limit responses
- #7434 - Rate limit slow request warning to prevent spamming logs
- #7373 - Log shard transfers as a result of the consensus recovery procedure
- #7337 - Tone down optimizer logging to make it less verbose
- #7370 - Add
TARGET_CPU and JEMALLOC_SYS_WITH_LG_PAGE build parameters to Docker image
Metrics 📈
- #7302, #7441 - In metrics, report point and vector counts per collection and vector name (
collection_{points,vectors}) - #7307 - In metrics, report number of points skipped in
indexed_only search (collection_indexed_only_excluded_points) - #7301 - In metrics, report global effective minimum and maximum shard replication count (
collection_active_replicas_{min,max}) - #7310, #7516 - In metrics, report total number of non-active replicas (
collection_dead_replicas) - #7316, #7480 - In metrics, expose
collection_running_optimizations with number of optimizers running per collection - #7497 - In metrics, report running, created and recovered number of snapshots (
snapshot_{creation,recovery}_running, snapshot_created_total) - #7484 - In metrics, report active thread count (
process_threads) - #7451 - In metrics, report number of open file descriptors and the limit (
process_{open,max}_fds) - #7487 - In metrics, report open mmaps and system limit (
process_open_mmaps, system_max_mmaps) - #7482 - In metrics, report total number of major and minor page faults (
process_{minor,major}_page_faults_total) - #7438 - In metrics, add configuration option to prefix all metrics with
qdrant_ or something else
Bug fixes 🕵️
- #7527 - Fix logger API allowing arbitrary file writes, now this can only be configured through configuration
- #7530 - Abort pending search tasks when search is cancelled, fixing optimizer instability under huge load
- #7533 - Abort other blocking tasks such as retrieve and snapshot prematurely if the caller gets cancelled
- #7531 - Cancel ongoing searches more aggressively if the search is cancelled
- #7517 - Fix resharding down panic if no shard key is provided on collection with custom sharding
- #7469 - Fix panic on certain queries with unknown vector name
- #7375 - Forbid peer to join cluster with URI that is already used, which could break a cluster
- #7400 - Fix corrupt segments on load if segment was partially flushed, prevent payload index corruption
- #7342, #7404, #7427 - Force flush all segments when taking snapshot to prevent data corruption
- #7381 - Fix flush ordering on segments currently being snapshotted, fixing data consistency on crash
- #7388, #7416 - Fix flush ordering with concurrent flushes to ensure data consistency
- #7512, #7521 - Fix dummy shards not allowing snapshot recovery
Web UI 🫂
Deprecations 🚧
- #7454 - Remove
init_from collection API, deprecated since Qdrant 1.15 - #7449 - Remove lock API, deprecated since Qdrant 1.15
- #7047 - Remove old internal shard key format, deprecated and migrated away from in Qdrant 1.15
- #7450 - Remove payload filter from RBAC/JWT, deprecated since Qdrant 1.15, API keys using it are rejected
- #7183 - Deprecate old variant of vector output
timvisee tag:github.com,2008:Repository/268163609/v1.15.5 2025-09-30T13:07:26Z
-
-v1.15.5
-
-Change log
Improvements
- #7157 - Acknowledge update/delete by filter operations on flush, preventing very slow restart
- #7217, #7218, #7219, #7220, #7221 - Add API validation to min_should, filters, point update batch and others
- #7235 - Add timeout parameter to remove peer operation
- #7320 - Decrease internal update batch sizes to minimize search latency spikes on large user batches
- #7233 - Limit number of segments loaded in parallel, preventing potential OOM on large clusters
- #7222 - Add strict mode configuration to specify max number of payload indices
- #7240 - Improve error reporting on mutable ID tracker load errors
- #7151 - Improve error reporting on flush problems
- #7244 - Remove vector count field from collection info
- #7177 - Do not anonymize peer ID in telemetry data
Bug fixes
- #7263 - Fix not flushing mutable ID tracker files after creation, potentially causing segment corruption
- #7248 - Fix data race at the end of snapshot creation causing missing points
- #7298, #7306 - Fix data race during snapshots corrupting point data if a point is moved
- #7241, #7265, #7267, #7269, #7277 - Fix potential deadlock in REST runtime while streaming shard snapshot
- #7015 - Fix potential deadlock on REST server runtime
- #7172 - Fix potential recursive deadlock when fetching all vectors
- #7203 - Fix potential deadlock in scroll API
- #7303 - Fix incorrectly deleting old point versions from segments
- #7194 - Fix upsert operations with duplicate point IDs not being applied properly
- #7252 - Fix phrase matching ignoring unknown tokens
- #7264 - Fix strict mode validation on nested filters
timvisee+Change log
Improvements
- #7755, #7588 - Respect search and point retrieve timeout when trying to access segments
- #7685 - Respect telemetry timeout when fetching shard statistics
- #7715 - Log snapshot download duration and speed
Bug fixes
- #7787, #7791 - Fix WAL delta transfer corrupting replica after a previous full transfer was aborted
- #7801, #7805 - Fix flush losing changes on transient disk IO errors, potentially corrupting data
- #7792 - Fix incorrectly aborting shard transfers when dropping unrelated shard
- #7741 - Fix flush error in Gridstore, potentially corrupting data when quickly alternating inserts/deletes
- #7702 - Fix flush data race in Gridstore, potentially corrupting data when storage is cleared in parallel
- #7759, #7782 - Fix handling of collection names with weird characters, breaking snapshot transfers for example
- #7788 - Fix snapshot metrics not always reporting when zero (
snapshot_{creation,recovery}_running, snapshot_created_total) - #7783 - Fix incorrectly reporting optimization errors in telemetry on panic
- #7765 - Fix slow shutdown on SIGINT when optimizations are running
- #7690 - Fix Qdrant not building on Windows ARM64
- #7683 - Keep RocksDB support until 1.18.0 in development builds
timvisee