Milvus v2.6.20

v2.6.20

milvus-2.6.20

Added 1
  • Add named C++ thread-pool activity metrics and Grafana monitoring
Changed 8
  • Improve QueryCoord scheduling by decoupling task dispatch from distribution polling to allow independent scheduling intervals
  • Improve QueryNode query batching by increasing the default NQ grouping limits for larger merged query batches
  • Improve index-loading resilience by safely completing pending range reads after partial failures
  • Optimize VARCHAR primary-key population when loading sealed segments
  • Improve filter execution performance by skipping null-bitmap processing for all-valid results
  • Improve channel balancing by enabling the channel-level score balancer by default and introducing a safer default threshold for channel-exclusive mode
  • Improve streaming rebalancing to trigger immediately when the primary resource group configuration changed
  • Upgrade Knowhere to v2.6.17 to prevent GPU_CAGRA operations from failing with bad_optional_access under the default ef configuration
Fixed 10
  • Fix incorrect JSON path filter results for missing, null, or type-mismatched values
  • Fix an issue where Marisa string indexes could fail to upload or load when the local temporary directory was missing
  • Fix an issue where stale streaming writes could retry indefinitely after their target collection or partition was dropped
  • Fix an issue where cluster-level load configuration could override user-specified collection replica settings without force override enabled
  • Fix an issue where analyzer runtime settings and YAML updates were not applied to the Rust analyzer layer
  • Fix an issue where StorageV2 text index builds could use incorrect paths for existing segment insert logs
v2.6.20

Release date: July 14, 2026

Milvus VersionPython SDK VersionNode.js SDK VersionJava SDK VersionGo SDK Version
2.6.202.6.162.6.172.6.222.6.20

We are excited to announce the release of Milvus v2.6.20! This release improves query scheduling and batching, index loading, filtering performance, streaming rebalancing, and observability. It also resolves correctness and reliability issues across JSON filtering, streaming recovery, text indexing, analyzer configuration, and GPU_CAGRA operations.

Improvements
  • Added named C++ thread-pool activity metrics and Grafana monitoring (#50299)
  • Improved QueryCoord scheduling by decoupling task dispatch from distribution polling to allow independent scheduling intervals (#50774, #50777)
  • Improved QueryNode query batching by increasing the default NQ grouping limits for larger merged query batches (#50859, #50898)
  • Improved index-loading resilience by safely completing pending range reads after partial failures (#50937)
  • Optimized VARCHAR primary-key population when loading sealed segments (#51063)
  • Improved filter execution performance by skipping null-bitmap processing for all-valid results (#51067)
  • Improved channel balancing by enabling the channel-level score balancer by default and introducing a safer default threshold for channel-exclusive mode (#51132)
  • Improved streaming rebalancing to trigger immediately when the primary resource group configuration changed (#51147)
  • Upgraded Knowhere to v2.6.17 to prevent GPU_CAGRA operations from failing with bad_optional_access under the default ef configuration (#51209)
Bug fixes
  • Fixed incorrect JSON path filter results for missing, null, or type-mismatched values (#50722, #50723)
  • Fixed an issue where Marisa string indexes could fail to upload or load when the local temporary directory was missing (#50772)
  • Fixed an issue where stale streaming writes could retry indefinitely after their target collection or partition was dropped (#50849, #50895)
  • Fixed an issue where cluster-level load configuration could override user-specified collection replica settings without force override enabled (#50860)
  • Fixed an issue where analyzer runtime settings and YAML updates were not applied to the Rust analyzer layer (#50998)
  • Fixed an issue where StorageV2 text index builds could use incorrect paths for existing segment insert logs (#51002)
  • Fixed an issue where DumpMessages omitted transaction data messages and produced incomplete exports (#51102)
  • Fixed an issue where ARRAY containment expressions could return incorrect results for float literals (#51130)
  • Fixed an issue where filters on missing nested JSON values, failed JSON casts, or out-of-range array elements could return incorrect results instead of UNKNOWN (#51135)
  • Fixed an issue where streaming recovery could omit physical channels recorded in collection metadata and leave required WAL topics unavailable after startup (#51144)
View original

Upgraded? How did it go?

Discussion