Skip to content

Releases: milvus-io/milvus

milvus-2.5.6

10 Mar 03:23
ed71932
Compare
Choose a tag to compare

v2.5.6

Release date: March 10, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.6 2.5.5 2.5.5 2.5.5

We’re excited to announce the release of Milvus 2.5.6, featuring valuable enhancements to toolchains, logging, metrics, and array handling, as well as multiple bug fixes for improved reliability and performance. This update includes refined concurrency handling, more robust compaction tasks, and other key improvements. We encourage you to upgrade or try it out, and as always, we welcome your feedback to help us continuously improve Milvus!

Improvements

  • Upgrade the Go toolchain to 1.22.7 (#40399)
  • Upgrade Rust version to 1.83 (#40317)
  • Bump Etcd version to 3.5.18 (#40230)
  • Only check element type for non-null arrays (#40447)
  • Remove debug logs in the resource group handler (v2) (#40393)
  • Improve logging for the gRPC resolver (#40338)
  • Add more metrics for asynchronous CGO components (#40232)
  • Clean the shard location cache after a collection is released (#40228)

Bug fixes

  • Fixed array corruption caused by ignoring validity (#40433)
  • Fixed an issue where null expressions did not work for JSON fields (#40457)
  • Fixed an issue that stored the wrong offset when building Tantivy with a nullable field (#40453)
  • Skipped executing stats for zero segments (#40449)
  • Corrected memory size estimation for arrays (#40377)
  • Passed a knapsack pointer to avoid multiple compactions (#40401)
  • Fixed a crash issue with bulk insert (#40304)
  • Prevented message stream leaks by properly terminating the main dispatcher (#40351)
  • Fixed concurrency issues for null offsets (#40363), (#40365)
  • Fixed parsing of the import end ts (#40333)
  • Improved error handling and unit tests for the InitMetaCache function (#40324)
  • Added a duplicate parameter check for CreateIndex (#40330)
  • Resolved an issue preventing compaction tasks when size exceeded the max limit (#40350)
  • Fixed duplicate consumption from the stream for invisible segments (#40318)
  • Changed the CMake variable to switch to knowhere-cuvs (#40289)
  • Fixed an issue where dropping DB properties via RESTful failed (#40260)
  • Used a different message type for the OperatePrivilegeV2 API (#40193)
  • Fixed a data race in the task delta cache (#40262)
  • Resolved a task delta cache leak caused by duplicate task IDs (#40184)

milvus-2.4.23

28 Feb 13:28
bcafb3c
Compare
Choose a tag to compare

v2.4.23

Release Date: February 28, 2025

Milvus version Python SDK version Java SDK version Node.js SDK version
2.4.23 2.4.15 2.4.10 2.4.11

We’re excited to announce the release of Milvus 2.4.23, which introduces enhancements for multi-stage tasks and balancing operations, along with critical bug fixes to prevent deadlocks and duplicate index creation. We encourage you to upgrade or give it a try, and as always, your feedback is greatly appreciated to help us continuously improve Milvus!

Critical bug fixes

  • Added a sub-task pool for multi-stage tasks to avoid deadlocks (#40093)
  • Fixed an issue where multiple identical indexes could be created by accident (#40202)

Improvements

  • Added a trigger interval configuration for auto-balancing (#39925)
  • Added a management API to check QueryCoord balance status (#39924)
  • Optimized the result format of GetQueryNodeDistribution (#39927)
  • Accelerated object listing during binlog import (#40049)
  • Added GetVector latency metrics and refined request limit error messages (#40086)
  • Supported creating a collection with a description (#40029)

Bug fixes

  • Removed the hardcoded partition number in the RESTful handler (#40213)
  • Fixed an issue where AlterCollection was unable to modify ConsistencyLevel (#39906)
  • Fixed incorrect metrics where the number of executing compaction tasks was negative (#39956)
  • Ensured sub-contexts are canceled when an HTTP request times out (#40170)
  • Fixed an issue allowing the creation of collections with duplicate names (#40148)
  • Resolved a problem where a segment could remain in the sealed state and not transition to flushing (#39998)
  • Enhanced the isBalanced function to correctly count quote pairs (#40005)

milvus-2.5.5

27 Feb 03:57
27fb8d9
Compare
Choose a tag to compare

v2.5.5

Release date: February 26, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.5 2.5.4 2.5.5 2.5.4

Milvus 2.5.5 brings significant improvements in the number of collections and partitions a single cluster can support. It is now fully feasible to run Milvus with 10K collections and 100K partitions. This release also addresses several critical bugs, including missing match stats and a deadlock issue in multi-stage queries. Additionally, it includes numerous observability and security enhancements. We strongly recommend that all users running Milvus 2.5.x upgrade as soon as possible.

Dependency Upgrade

Upgraded to ETCD 3.5.18 to fix several CVEs.

Critical Bugs

  • [2.5] Used text_log prefix for textmatchindex null offset file (#39936)
  • [2.5] Added sub-task pool for multi-stage tasks to avoid deadlock (#40081)

Bug Fixes

  • [2.5] Fixed task scheduler deadlock (#40121)
  • [2.5] Fixed race condition that caused multiple identical indexes to be created (#40180)
  • [2.5] Fixed issue where collections with duplicate names could be created (#40147)
  • Fixed search failure of null expression (#40128)
  • [2.5] Fixed bug where prefix matching failed when wildcards were in the prefix (#40021)
  • Cancelled subcontexts cascade when HTTP request timed out (#40060)
  • [2.5] Fixed task delta cache leak on reduce task (#40056)
  • [2.5] Fixed querycoord panic in corner case (#40058)
  • [2.5] Enhanced isbalanced function to correctly count quote pairs (#40002)
  • [2.5] Fixed negative -1 executing compaction tasks (#39955)
  • [2.5] Fixed bug where a segment may never transfer from sealed to flushing (#39996)
  • Skipped creating primary key index when loading pk index (#39922)
  • [2.5] Skipped text index creation when segment was zero after sorting (#39969)
  • [2.5] Fixed failure to seek to earliest position (#39966)
  • Ignored growing option lost at hybridsearch (#39900)
  • [2.5] Fixed altercollection unable to modify consistency level (#39902)
  • Fixed import failure due to 0 row count (#39904)
  • [2.5] Fixed wrong module result for long type (#39802)
  • [2.5] Added and used lifetime context for compaction trigger (#39880)
  • [2.5] Checked collection release before target checks (#39843)
  • Fixed Rootcoord graceful stop failure and limited resource of CI (#39793)
  • [2.5] Removed load field & schema column size check (#39834, #39835)
  • [2.5] Removed the mmap.enable param in the type param when creating index (#39806)
  • [2.5] Did not pass the index name when dropping properties (#39679)
  • [2.5] Segments returned both growing and sealed results (#39789)
  • [2.5] Fixed concurrent map issue (#39776)
  • [2.5] Resolved conflict on QC task test (#39797)
  • [2.5] Fixed collection load stuck if compaction or GC occurred (#39761)
  • [2.5] Fixed uneven distribution caused by executing task delta cache leak (#39759)
  • [2.5] Returned early when skipping load pk index (#39763)
  • [2.5] Fixed root user being able to list all collections even when common.security.rootShouldBindRole was set (#39714)
  • [2.5] Fixed flowgraph leak (#39686)
  • [2.5] Used param item formatter to avoid setconfig overlay (#39636)
  • [2.5] Metastore privilege name checked with privilege name "all" (#39492)
  • [2.5] Added rate limiter for RESTful v1 (#39555)
  • [2.5] Removed hardcoded partition number in RESTful handler (#40113)

Improvements

Observability

  • Added monitor metric to retrieve raw data (#40155)
  • [2.5] Added get vector latency metric and refined request limit error message (#40085)
  • [2.5] Added metrics for proxy queue (#40071)
  • Exposed more metrics data (#39466)
  • [2.5] Added metrics for parse expression (#39716)
  • [2.5] Added DSL log field for hybridsearch (#39598)
  • [2.5] Skipped updating index metrics if index was dropped (#39572)
  • [2.5] Dumped pprof info if component stop progress timed out (#39760)
  • [2.5] Added management API to check querycoord balance status (#39909)

Stats/Compaction/Index Task Scheduler Optimization

  • Refined index task scheduler policy (#40104)
  • [2.5] Limited the speed of generating stats task (#39645)
  • Added configs for compaction schedule (#39511)
  • [2.5] Checked L0 compaction only with the same channel when stating (#39543)
  • [2.5] Adjusted segment loader's memory estimate for interim indexes (#39509)
  • [2.5] Used start pos ts for seal segment by lifetime policy (#39994)
  • Removed task meta when task was no longer needed (#40146)
  • [2.5] Accelerated listing objects during binlog import (#40048)
  • Supported creating collection with description (#40028)
  • [2.5] Exported index request timeout interval in config (#40118)
  • [2.5] Synced proxy.maxTaskNum default value to 1024 (#40073)
  • Decreased dump snapshot limit from 10w to 1w (#40102)
  • [2.5] Avoided string to slice bytes copy for batch pk exists (#40097)
  • Supported returning configurable properties when describing index (#40043)
  • Optimized expression performance for certain points (#39938)
  • [2.5] Optimized result format of getQueryNodeDistribution (#39926)
  • [cp25] Enabled observation of write amplification (#39743)
  • [2.5] Returned top-k results when searching in RESTful v2 (#39839)
  • [2.5][GoSDK] Added withEnableMatch syntactic sugar (#39853)
  • [2.5] Interim index supported different index types and more data types (FP16/BF16) (#39180)
  • [GoSDK][2.5] Synced GoSDK commits from master branch (#39823)
  • Kept consistency of memory and meta of broadcaster (#39721)
  • Broadcasted with event-based notification (#39550)
  • [2.5] Refined error message for schema & index checking (#39565)
  • [2.5] Reset default auto index type for scalar (#39820)
  • [2.5] Re-enqueued L0 compaction task when precheck failed (#39871)

milvus-2.4.22

18 Feb 07:17
6eb73d1
Compare
Choose a tag to compare

v2.4.22

Release Date: February 14, 2025

Milvus version Python SDK version Java SDK version Node.js SDK version
2.4.22 2.4.14 2.4.10 2.4.11

We’re thrilled to announce the release of Milvus 2.4.22, focusing on enhanced performance, faster data loading and recovery, and improved stability. This update includes several feature improvements and bug fixes that streamline operations and optimize resource usage. We encourage you to upgrade or give it a try, and as always, we look forward to your feedback to help us continually improve Milvus!

Improvements

  • Return topks when searching in RESTful v2 (#39858)
  • Dump pprof information if the component stop process times out (#39764)
  • Make compaction intervals configurable (#39512)
  • Add a secondary index for QueryNode segment manager to accelerate queries (#38348)
  • Read metadata concurrently at the collection level to speed up failure recovery (#39756)
  • Reduce locking in DataCoord to speed up load and insert operations (#38230)
  • Increase the metadata list batch size to speed up recovery (#39741)
  • Skip generating the partition limiter if no partition is set (#38912)
  • Improve the speed of fetching collection information from RootCoord by avoiding unnecessary copies (#38903)
  • Decrease the update frequency for rapidly refreshed metrics to accelerate recovery (#38776)
  • Use WalkWithPrefix instead of LoadWithPrefix to accelerate etcd list operations (#38216)
  • Speed up data loading by accelerating task generation, scheduling, and execution in QueryCoord (#38906)
  • Remove unnecessary Bloom Filters in QueryNode and DataNode to reduce memory usage (#38215)
  • Handle Rust errors in C++ (#39501)

Bug fixes

  • Fixed an issue where imports failed due to 0 row num (#39903).
  • Fixed an issue where Checkpoint target lag metrics might leak after a collection is released (#39842)
  • Fixed a potential partial partition load timeout issue (#39834)
  • Fixed an issue where index mmap could be incorrectly enabled (#39805)
  • Fixed an issue causing the modulo operation to fail for int64 in filtered searches (#39804)
  • Fixed a potential freeze when loading a collection during compaction or GC (#39766)
  • Fixed an issue where root could still list all collections after rootShouldBindRole was set (#39715)
  • Fixed channel imbalance issues caused by node downtime (#39738)
  • Resolved freeze issues triggered by excessive message queue consumers by limiting concurrency (#38916)
  • Fixed a flowgraph leak (#39687)
  • Fixed a sporadic issue where the Tantivy index could not delete index files during release (#39471)
  • Fixed an issue where incorrect configurations could invalidate permission settings (#39493)
  • Fixed an issue where RESTful API V1 could not be throttled (#39554)
  • Fixed an issue that prevented L0 Compaction from triggering when another collection was busy (#39384)

milvus-2.5.4

24 Jan 02:30
6cdabd9
Compare
Choose a tag to compare

v2.5.4

Release date: January 23, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.4 2.5.4 2.5.4 2.5.4

We’re excited to announce the release of Milvus 2.5.4, which introduces key performance optimizations and new features such as PartitionKey isolation, Sparse Index with DAAT MaxScore, and enhanced locking mechanisms. A standout highlight of this release is its support for 10,000 collections and 1 million partitions, marking a major milestone for multi-tenant use cases. This version also addresses multiple bugs that improve overall stability and reliability, two of the critical bugs may cause data loss. We encourage you to upgrade or try out this latest release, and we look forward to your feedback in helping us continually refine Milvus!

Features

  • Supports PartitionKey isolation to improve performance with multiple partition keys (#39245). For more information, refer to Use Partition Key.
  • Sparse Index now supports DAAT MaxScore knowhere/#1015. For more information, refer to Sparse Vector.
  • Adds support for is_null in expression (#38931)
  • Root privileges can be customized (#39324)

Improvements

  • Support 10K collections and 1million partitions in one cluster (#37630)
  • Cached segments’ delta information to accelerate the Query Coordinator (#39349)
  • Read metadata concurrently at the collection level to speed up failure recovery (#38900)
  • Refined lock granularity in QueryNode (#39282), (#38907)
  • Unified style by using CStatus to handle NewCollection CGO calls (#39303)
  • Skipped generating the partition limiter if no partition is set (#38911)
  • Added more RESTful API support (#38875) (#39425)
  • Removed unnecessary Bloom Filters in QueryNode and DataNode to reduce memory usage (#38913)
  • Speeded up data loading by accelerating task generation, scheduling, and execution in QueryCoord (#38905)
  • Reduced locking in DataCoord to speed up load and insert operations (#38904)
  • Added primary field names in SearchResult and QueryResults (#39222)
  • Used both binlog size and index size as the disk quota throttling standard (#38844)
  • Optimized memory usage for full-text search knowhere/#1011
  • Added version control for scalar indexes (#39236)
  • Improved the speed of fetching collection information from RootCoord by avoiding unnecessary copies (#38902)

Critial Bug fixs

  • Fixed search failures for primary keys with indexes (#39390)
  • Fixed potential data loss issue caused by restarting MixCoord and flushing concurrently (#39422)
  • Fixed a delete failure triggered by improper concurrency between stats tasks and L0 compaction after MixCoord restarts (#39460)
  • Fixed scalar inverted index incompatibility when upgrading from 2.4 to 2.5 (#39272)

Bug fixes

  • Fixed slow query issues caused by coarse lock granularity during multi-column loading (#39255)
  • Fixed an issue where using aliases could cause an iterator to traverse the wrong database (#39248)
  • Fixed a resource group update failure when altering the database (#39356)
  • Fixed a sporadic issue where the tantivy index could not delete index files during release (#39434)
  • Fixed slow indexing caused by having too many threads (#39341)
  • Fixed an issue preventing disk quota checks from being skipped during bulk import (#39319)
  • Resolved freeze issues caused by too many message queue consumers by limiting concurrency (#38915)
  • Fixed query timeouts caused by MixCoord restarts during large-scale compactions (#38926)
  • Fixed channel imbalance issues caused by node downtime (#39200)
  • Fixed an issue that could cause channel balance to become stuck. (#39160)
  • Fixed an issue where RBAC custom group privilege level checks became ineffective (#39224)
  • Fixed a failure to retrieve the number of rows in empty indexes (#39210)
  • Fixed incorrect memory estimation for small segments (#38909)

milvus-2.4.21

22 Jan 01:59
86ae07d
Compare
Choose a tag to compare

v2.4.21

Release Date: January 22, 2025

Milvus version Python SDK version Java SDK version Node.js SDK version
2.4.21 2.4.14 2.4.10 2.4.11

We’re excited to announce a new release of Milvus 2.4.21, featuring customizable root privileges, refined concurrency and locking mechanisms, and a host of bug fixes to enhance overall stability and reliability. We encourage you to upgrade or give it a try, and share your feedback to help us continually improve Milvus!

Features

  • Root privileges can be customized (#39325)

Critical bug fixes

  • Fixed potential data loss issue caused by restarting MixCoord and flushing concurrently (#39423)

Bug fixes

  • Fixed an alias issue that could cause an iterator to traverse the wrong database (#39301)
  • Resolved slow query problems caused by coarse lock granularity during multi-column loading (#39290)
  • Fixed a resource group update failure when altering the database (#39357)
  • Allowed skipping disk quota checks during bulk import (#39320)
  • Supports Tantivy indexes built from multiple segments (#39127)
  • Fixed incorrect memory estimation for small segments (#38910)
  • Fixed ineffective RBAC custom group privilege checks (#39194)
  • Resolved a server crash caused by passing an empty parameter to RestoreRBAC API (#39142)
  • Fixed an error reporting issue when automatic refresh config operations failed (#39073)
  • Fixed unrecognized expressions that used uppercase AND or OR (#38929)
  • Resolved a partition drop failure that occurred after a load failure (#38871)

Improvements

  • Unified style by using CStatus to handle NewCollection CGO calls (#39306)
  • Unified style by using CStatus to handle NewCollection CGO calls (#39306)
  • Refactored the delete MVCC function (#39258)
  • Refined lock granularity in QueryNode (#38908)
  • Added primary field names in SearchResult and QueryResults (#39223)
  • Introduced a new Go package to manage proto (#39129)
  • Cleaned up compaction tasks in compactionhandler (#38848)
  • Accelerated bitset operations with SIMD (#39042)
  • Optimized error handling for unloaded collection on QueryNode (#38920)
  • Updated the default Etcd version to v3.5.16 (#38973)

milvus-2.5.3

13 Jan 10:47
ac730be
Compare
Choose a tag to compare

v2.5.3

Release date: January 13, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.3 2.5.3 2.5.3 2.5.4

Milvus 2.5.3 delivers critical bug fixes and performance enhancements to improve overall stability, reliability, and usability. This version refines concurrency handling, bolsters data indexing and retrieval, and updates several key components for a more robust user experience.

Bug fixes

  • Fixed an issue where using an IN filter on a VARCHAR primary key could return empty results. (#39108)
  • Fixed a concurrency problem between query and delete operations that could lead to incorrect results. (#39054)
  • Fixed a failure caused by iterative filtering when an expr was empty in a query request. (#39034)
  • Fixed an issue where a disk error during config updates led to the use of default config settings. (#39072)
  • Fixed a potential loss of deleted data due to clustering compaction. (#39133)
  • Fixed a broken text match query in growing data segments. (#39113)
  • Fixed retrieval failures caused by the index not containing the original data for sparse vectors. (#39146)
  • Fixed a possible column field race condition caused by concurrent querying and data loading. (#39152)
  • Fixed bulk insert failures when nullable or default_value fields were not included in the data. (#39111)

Improvements

  • Added a resource group API for the RESTful interface. (#39092)
  • Optimized retrieve performance by leveraging bitset SIMD methods. (#39041)
  • Used MVCC timestamp as the guarantee timestamp when specified. (#39019)
  • Added missing delete metrics. (#38747)
  • Updated Etcd to version v3.5.16. (#38969)
  • Created a new Go package to manage protos.(#39128)

milvus-2.5.2

03 Jan 04:00
4533fc8
Compare
Choose a tag to compare

v2.5.2

Release date: January 3, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.2 2.5.3 2.5.3 2.5.3

Milvus 2.5.2 supports modifying the maximum length for VARCHAR columns and resolves several critical issues related to concurrency, partition drops, and BM25 stats handling during import. We highly recommend upgrading to this version for improved stability and performance.

Improvements

  • Generated disk usage logs only when the specified path does not exist. (#38822)
  • Added a parameter for tuning the maximum VARCHAR length and restored the limit to 65,535. (#38883)
  • Supported parameter type conversion for expressions. (#38782)

Bug fixes

  • Fixed potential deadlocks in concurrency scenarios. (#38863)
  • Generated the index_null_offset file only for fields that support null values. (#38834)
  • Fixed the retrieve plan usage after free in the reduce phase. (#38841)
  • Recognized expressions with capitalized AND and OR. (#38928)
  • Allowed successful partition drops even if loading failed. (#38874)
  • Fixed BM25 stats file registration issues during import. (#38881)

milvus-2.4.20

02 Jan 01:30
ccbe6fc
Compare
Choose a tag to compare

v2.4.20

Release Date: Janurary 2, 2025

Milvus version Python SDK version Java SDK version Node.js SDK version
2.4.20 2.4.13 2.4.10 2.4.10

Milvus 2.4.20 addresses several critical issues, including fixing mmap for sparse index, resolving the failure to parse the correct database name when altering collection fields, and preventing deadlocks in multiple compaction tasks within the scheduler. Additionally, this version introduces an enhancement that allows adjustment of the system limit for maximum varchar length through a configuration item in the YAML file. We highly recommend upgrading to this version for improved stability and reliability.

Improvements

  • Added param for tuning max varchar length (#38890)

Bug fixes

  • Enabled mmap for sparse index (#38849)
  • Fixed altercollectionfield interceptor dbname (#38664)
  • Released compaction task lock when return function (#38857)
  • Retrieve plan on heap was used after free when reduce (#38842)

milvus-2.5.1

27 Dec 06:01
a67b572
Compare
Choose a tag to compare

v2.5.1

Release date: December 26, 2024

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.1 2.5.2 2.5.2 2.5.2

Milvus 2.5.1 focuses on a series of bug fixes addressing memory loading, RBAC listings, query node balancing, and sealed segment indexing, while also improving the Web UI and interceptors. We highly recommend upgrading to 2.5.1 for enhanced stability and reliability.

Improvement

  • Update web UI collection and query pages. (#38701)

Bug fixes

  • Fixed OOM issues by adding a memory factor to loading estimations. (#38722)
  • Fixed privilege group expansion when listing policies in RootCoord. (#38760)
  • Fixed issues with listing privilege groups and collections. (#38738)
  • Fixed the balancer to avoid repeatedly overloading the same query node. (#38724)
  • Fixed unexpected balance tasks triggered after QueryCoord restarts. (#38725)
  • Fixed load config updates not applying to loading collections. (#38737)
  • Fixed zero read count during data import. (#38695)
  • Fixed Unicode decoding for JSON keys in expressions. (#38653)
  • Fixed interceptor DB name for alterCollectionField in 2.5. (#38663)
  • Fixed empty index parameters for sealed segments when using BM25 brute force search. (#38752)