milvus-2.6.11
Release date: February 12, 2026
| Milvus Version | Python SDK Version | Node.js SDK Version | Java SDK Version | Go SDK Version |
|---|---|---|---|---|
| 2.6.11 | 2.6.9 | 2.6.9 | 2.6.13 | 2.6.1 |
We are pleased to announce the release of Milvus 2.6.11! This update continues to enhance query performance and system stability with improvements to filtering execution, segment loading, and Storage V2 I/O pipelining. It also refines geo indexing, reduces memory usage in default-value chunks, and improves developer and build tooling through dependency and test-suite cleanups. This release further fixes several correctness issues across control-channel handling, index building, nullable-expression semantics, and WAL recovery workflows. We recommend all users on the 2.6 branch upgrade to this version for improved reliability and performance.
- Added a truncate API to remove collection data more efficiently (#47308)
- Used
PreparedGeometryto improve geo index refinement performance (#47389) - Switched the OpenSSL dependency to shared linking (#47664)
- Differentiated load priorities by scenario to improve scheduling behavior (#47594)
- Upgraded Go to 1.24.12 and updated
gpgvto address CVEs (#47562) - Reduced memory usage by enabling multi-cell
DefaultValueChunklayout (#47166) - load-diff based segment loading patches to improve load efficiency (#47545)
- Removed redundant bitset count operations during filter execution to reduce CPU overhead (#47546)
- Added semantic highlighting support for dynamic fields (#47464)
- Reduced unnecessary
PinWrappercopies insearchPksWithto improve query performance (#47531) - Normalized constant-folded boolean expressions to
AlwaysTrueExpr/AlwaysFalseExprduring rewriting for simpler plans (#47493) - Added RESTful
search_by_pksupport (#47318) - Optimized “latest delete snapshot” handling to reduce overhead (#47409)
- Added support for user-specified warmup settings (#47343)
- Added
LoadWithStrategyAsyncto enable true I/O pipelining in Storage V2 (#47427) - Optimized MixCoord's CPU and memory usage by avoiding redundant calculations in the balance checker (#47190)
- Added sparse filtering support in search (#47447)
- Reduced memory allocations and copies during data loading (#47088)
- Fixed an issue where collection metadata could contain an invalid database name (#47721)
- Ensured exclusive control-channel messages acquire a global lock in the lock interceptor (#47678)
- Fixed channel exclusive mode state loss and vchannel list handling issues (#47702)
- Fixed index building to use the correct global offset for
null_offset_inBuildIndexFromFieldData(#47708) - Improved v2.5/v2.6 compatibility handling in
SyncTargetVersion(QueryNode) (#47693) - Handled
broadcastToAllmessages on the control channel in recovery storage (#47640) - Added
warmupKeyto theCheckParamsfilter to makeCreateIndexidempotent (#47607) - Corrected the default
mmapvalue in code (#47490) - Populated
LevelZeroSegmentIDsinGetDataVChanPositions(#47597) - Corrected null handling on
NullExpr,ExistsExpr, and logical operators (#47519) - Removed
segment_loaderpre-reserve logic for warmup fields/indexes to avoid incorrect reservations (#47463) - Updated
log_*macros to use{}placeholders to avoid treating error messages as format strings (#47485) - Fixed bloom filter memory leak when a worker node crashes (#47451)
- Used actual data timestamps for imported segment positions (#47370)
- Rebuilt WAL messages on each append retry to avoid panics (#47480)
- Filled in the log and memory size fields in
TextIndexStatsmetadata (#47476) - Reduced the empty timetick filtering interval to improve timetick handling (#47471)
milvus-2.5.27
Release note is coming...
milvus-2.6.10
Release date: February 5, 2026
| Milvus Version | Python SDK Version | Node.js SDK Version | Java SDK Version | Go SDK Version |
|---|---|---|---|---|
| 2.6.10 | 2.6.8 | 2.6.9 | 2.6.13 | 2.6.1 |
We are pleased to announce the release of Milvus 2.6.10! This update strengthens security controls around KMS key revocation and improves search and storage performance through automatic FP32-to-FP16/BF16 conversion, optimized segment loading, and updated auto-index configurations. This release also fixes a number of stability issues across compaction, query pagination, and recovery workflows. We recommend all users on the 2.6 branch upgrade to this version for improved reliability and performance.
- Added support to stop WAL consumption when a KMS key is revoked (#47018)
- Updated the default auto-index configuration for vector fields (#47388)
- Disabled storage-version upgrade compaction by default (#47383)
- Added automatic FP32-to-FP16/BF16 conversion in search (#47241)
- Limited segment load concurrency by submitting loads to the load pool (#47335)
- Added the
map_populateflag formmapto reduce page faults during access (#47317) - Persisted BM25 stats to disk during segment loading to reduce recomputation (#47232)
- Added loading timeout and cancellation support for better control of long-running loads (#47223)
- Allowed
alter_collection_field()to update the field description (#47058) - Added a target manager to
ReplicaObserverinitialization (#47093) - Updated the Knowhere version for vector search improvements (#47109)
- Added BM25
search_by_pksupport (#47012) - Extracted assign policy from the balancer and added
StoppingBalancer(#47138) - Prevented import jobs/tasks from rolling back state unexpectedly (#47102)
- Improved slow logs by recording average cost per NQ (#47086)
- Fixed incorrect group results during pagination of grouped queries (#47248)
- Added boundary validation for threadpool resize operations (#47367)
- Improved error message handling when the error type is missing (#47369)
- Prevented coredumps and improved diagnostics for
PhyReScoresNode(#47341) - Reverted a compaction change related to “fast finish” when L0 compaction hits zero (L1/L2) (#47336)
- Prevented server crashes on division/modulo by zero in filter expressions (#47306)
- [Go SDK] Aligned
timestamptzfield type and data format with the server (#47328) - Added authentication to the metrics endpoint when authorization is enabled (#47278)
- Updated
milvus_proxy_req_countmetrics for RESTful APIs (#47239) - Submitted
TriggerTypeStorageVersionUpgradecompaction tasks correctly (#47234) - Allowed empty compaction results (#47153)
- Fixed Azure precheck to use a fixed bucket not owned by Milvus (#47168)
- Ignored L0 compaction during
PreallocSegmentIDschecks (#47189) - Fixed compaction fast-finish behavior when L0 compaction hits zero (L1/L2) (#47187)
- Removed unnecessary batching to reduce OOM risk (#47175)
- Fixed deserialization handling for empty vector arrays (#47127)
- Fixed runtime config updates not triggering watchers (#47161)
- Unified primary-key handling logic between
deletePreExecuteandpackDeleteMessage(#47147) - Used user-provided target size in compaction-related logic (#47115)
milvus-2.5.26
Release note is coming soon.
milvus-2.6.10
Release date: January 16, 2026
| Milvus Version | Python SDK Version | Node.js SDK Version | Java SDK Version | Go SDK Version |
|---|---|---|---|---|
| 2.6.9 | 2.6.6 | 2.6.9 | 2.6.12 | 2.6.1 |
We are pleased to announce the release of Milvus 2.6.9! This update introduces highlight scores for search results, enhances segment management with support for reopening segments when data or schema changes occur, and improves storage version handling. Key improvements include better logging performance, enhanced security controls for expression endpoints, and optimizations for text analyzers and index building. This release also resolves critical issues including memory estimation accuracy, geometry data conversions, and various stability fixes. We recommend all users on the 2.6 branch upgrade to this version for improved system reliability and performance.
- Supported searching by primary keys (#46528)
- Added a storage version label metric for better observability (#47014)
- QueryCoord now supports segment reopen when manifest path changes (#46921)
- Added support for reopening segments when data or schema changes occur (#46412)
- Improved slow log performance and efficiency (#47086)
- Added storage version upgrade compaction policy to facilitate version migrations (#47011)
- Eliminated extra memory copy operations for C++ logging to improve performance (#46992)
- Added security controls for the /expr endpoint to prevent unauthorized access (#46978)
- Streaming service now remains enabled until the required streaming node count is reached (#46982)
- Removed redundant etcd put operations when updating segment information (#46794)
- Improved row count validation and reduced misleading warning logs for sort compaction (#46824)
- Cleaned up and organized build index log messages (#46769)
- Limited the number of concurrent vector index builds per worker to prevent resource exhaustion (#46877)
- Optimized jieba and lindera analyzer cloning operations for better performance (#46757)
- Added glog sink to transfer CGO logs into zap logger for unified logging (#46741)
- Enforced storage V2 format usage and deprecated V1 writes (#46889)
- Implemented batch processing for ngram operations to improve efficiency (#46703)
- Added automatic retry mechanism for binlog write operations to improve reliability (#46854)
- Filtered empty timetick messages from the consuming side to reduce unnecessary processing (#46730)
- Improved search by primary key with duplicate checking and automatic anns_field inference (#46745)
- Added dimension parameter support for siliconflow and cohere embedding providers (#47081)
- Fixed double counting of index memory in segment loading estimation (#47046)
- Fixed compilation issues on macOS 14 (#47048)
- Used revision as streaming service discovery global version for better consistency (#47023)
- Ensured all futures complete on exception to prevent use-after-free crashes (#46960)
- Fixed shard interceptor incorrectly skipping
FlushAllMsgoperations (#47004) - Added valid range validation for collection TTL to prevent invalid configurations (#47010)
- Fixed
GetCredentialInfonot caching RPC responses (#46945) - Fixed issue where
AlterFunctioncould not be invoked when multiple functions become invalid (#46986) - Fixed inverted index null offset file not being compacted (#46950)
- Fixed crash when using is_null_expr on indexed JSON fields (#46894)
- Added check for allow_insert_auto_id flag in RESTful v2 insert API (#46931)
- Added field existence check in column groups before reading from loon manifest (#46924)
- Fixed bug where the highlight parameter was not working correctly (#46876)
- Quota center now ignores delegator when it is in recovering state (#46858)
- Aligned WKT/WKB conversion options to ensure consistent behavior across operations (#46874)
- Fixed voyageai model int8 bug (#46821)
- Fixed missing handling of
FlushAllMsgin recovery storage operations (#46803) - Fixed missing shardclientmgr field in querytask to prevent panic (#46838)
- Used leaderid for leaderaction stale check in scheduler to improve accuracy (#46788)
- Restored tenant/namespace support for Pulsar that was lost in 2.6 (#46759)
- Added load config watcher to prevent load config modifications from being lost (#46786)
- Fixed function edit interface bug (#46782)
- Added collection TTL property validation to prevent compaction from getting stuck (#46736)
milvus-2.5.25
Release note is coming...
milvus-2.6.8
Release note is coming soon...
client/v2.6.2
This release introduces QueryIterator support for efficient large result set iteration and adds Struct Array field type support in the Go SDK.
Added QueryIterator for efficiently iterating over large query result sets using PK-based pagination (#46633).
- Support for Int64 and VarChar primary key types for automatic pagination
- Configurable options via QueryIteratorOption:
- WithBatchSize(int) - Set batch size for each iteration (default: 1000)
- WithIteratorLimit(int64) - Set overall limit of entries to iterate
- WithFilter(string) - Set filter expression
- WithOutputFields(...string) - Specify output fields
- WithPartitions(...string) - Specify partition names
- WithConsistencyLevel(ConsistencyLevel) - Set consistency level
Usage Example:
opt := milvusclient.NewQueryIteratorOption("collection_name").
WithBatchSize(500).
WithFilter("age > 18").
WithOutputFields("id", "name", "vector")
iter, err := client.QueryIterator(ctx, opt)
for {
rs, err := iter.Next(ctx)
if errors.Is(err, io.EOF) {
break
}
// process rs...
}
Added support for Struct Array field type in Go SDK:
- New columnStructArray type implementing the Column interface
- Support for parsing StructArrayField from protobuf responses
- Schema construction support for struct array fields via entity.FieldTypeArray
Test Infrastructure Improvements (#45113)
- Refactored go_client test wrapper to use struct embedding pattern
- Improved test structure and organization
- #45113 - Refactor go_client test wrapper
- #45291 - Support struct array field type
- #46633 - Add QueryIterator support
milvus-2.5.24
Release note is coming soon.
milvus-2.6.7
Release date: December 4, 2025
| Milvus Version | Python SDK Version | Node.js SDK Version | Java SDK Version | Go SDK Version |
|---|---|---|---|---|
| 2.6.7 | 2.6.4 | 2.6.5 | 2.6.10 | 2.6.1 |
Milvus 2.6.7 is a critical stabilization update for the 2.6.x series. This release focuses on hardening the system against distributed failures and optimizing resource utilization under high load. With significant improvements in I/O handling, memory management, and Kubernetes integration, we strongly recommend all production users upgrade to this version to ensure greater reliability and smoother operation at scale.
- Added
/livezendpoint to support Kubernetes native liveness probes, improving container orchestration stability (#45481). - Added support for GroupBy operations on
TIMESTAMPZfields, enhancing time-series analytics capabilities (#45763) - Supported
mmapfor JSON shredding's shared key indices to reduce RAM footprint (#45861)
- Supported DML request forwarding in the Proxy to improve write availability and routing resilience (#45922).
- Upgrade etcd to v3.5.23 to address consensus stability and performance regressions (#45953).
- Added robust error handling for Etcd server crashes to prevent cascading component failures (#45633).
- Reduced Etcd load by removing expensive watchers for simple session liveness checks (#45974).
- Enhanced the WAL retention strategy to better balance disk usage with data recovery safety (#45784).
- Supported asynchronous write syncing for logs to prevent disk I/O blocking from affecting the main execution path (#45806).
- Enforced Buffered I/O usage for high-priority load tasks to optimize OS page cache utilization and throughput (#45958).
- Optimized
mmapstrategy to map group chunks in a single system call, reducing kernel overhead during segment loading (#45893). - Improved the accuracy of memory estimation for JSON shredding to prevent OOM kills or under-utilization (#45876).
- Refined segment load estimation to account for both eviction and warmup states (#45891).
- Added granular cancellation checks in query operators to allow faster termination of aborted or timed-out queries (#45894).
- Removed redundant resource type checks in file resource configuration (#45727).
- Interleaved Go and C++ logs into a unified stream to provide a correct chronological view for debugging (#46005).
- Resolved a race condition where
LastConfirmedMessageIDcould be incorrect under high concurrency writes (#45874). - Fixed a calculation error in aggregating
allsearchcountfrom multiple search results (#45904). - Fixed Term expressions to correctly handle string containment logic within JSON arrays (#45956).
- Replaced
json.doc()withjson.dom_doc()inJSONContainsExprto fix parsing behaviors and improve performance (#45786). - Fixed a panic in Standby MixCoord components during the shutdown sequence (#45898).
- Fixed the leader checker to ensure segment distribution is correctly synchronized to Read-Only nodes (#45991).
- Ensured
HandleNodeUpis triggered during node re-watching to maintain correct load balancing topology (#45963). - Implemented fallback to remote WAL storage if local WAL storage becomes unavailable (#45754).
- Added
EmptySessionWatcherto prevent panics when running in IndexNode binding mode (#45912). - Ensured memory state consistency when recovering broadcast tasks from protocol buffers (#45788).
- Addressed thread-safety issues in SegCore collection schema updates (#45618).
- Enforced Access Control (RBAC) checks for
ListImportandGetImportProgressAPIs (#45862). - Fixed a bug where BulkImport would fail if the input contained an empty struct list (#45692).