v2.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.
Features
- Added a truncate API to remove collection data more efficiently (#47308)
Improvements
- 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)
Bug fixes
- 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)