Milvus

Latest version: v2.3.9

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 16

2.3.3

Features

Supported pure list JSON in bulk insert (28126)

Improvements

- Constructed a plan directly when searching with vector output (27963)
- Removed binlog/delta log from getRecoveryInfoV2 (27895) (28090)
- Refined code for fixed-length types array (28109)
- Improved rolling upgrade unserviceable time
- Refined stop order (28016) (28089)
- Set qcv2 index task priority to Low (28117) (28134)
- Removed retry in getShards (28011) (28091)
- Fixed load index for stopping node (28047) (28137)
- Fixed retry on offline node (28079) (28139)
- Fixed QueryNode panic while upgrading (28034) (28114)
- Fixed coordinator fast restart by deleting old session (28205)
- Fixed check grpc error logic (28182) (28218)
- Delayed the cancellation of ctx when stopping the node (28249)
- Disabled auto balance when an old node exists (28191) (28224)
- Fixed auto balance block channel reassign after datanode restart (28276)
- Fixed retry when proxy stopped (28263)
- Reduced useless ObjectExists in AzureBlobManager (28157)
- Got vector concurrently (28119)
- Forced set Aliyun use_virtual_host to true for all (28237)
- Fixed delete session key with prefix causing multiple QueryNode crashes (28267)

Bug Fixes

- Fixed script stop unable to find Milvus process (27958)
- Fixed timestamp reordering issue with delete records (27941) (28113)
- Fixed prefix query with longer subarray potentially causing a crash (28112)
- Limited max thread num for pool (28018) (28115)
- Fixed sync distribution with the wrong version (28130) (28170)
- Added a custom HTTP header: Accept-Type-Allow-Int64 for JS client (28125)
- Fixed bug for constructing ArrayView with fixed-length type (28186)
- Fixed bug for setting index state when IndexNode connecting failed (28221)
- Fixed bulk insert bug that segments are compacted after import (28227)
- Fixed the target updated before version updated to cause data missing (28257)
- Handled exceptions while loading (28306)

2.3.2

We're thrilled to unveil Milvus 2.3.2, enriched with an array of novel features. Experience support for array data types, delve into intricate delete expressions, and celebrate the return of binary metric types such as SUBSTRUCTURE/SUPERSTRUCTURE.

This release promises enhanced performance through minimized data copying during loading and better bulk insertions. Coupled with heightened error messaging and handling, you're in for a smoother experience. Notably, our commitment to rolling upgrade stability ensures minimized service disruptions during updates.

Breaking Changes

- Discontinued TimeTravel in compactor ([26785](https://github.com/milvus-io/milvus/pull/26785))
- Phased out mysql metastore ([26633](https://github.com/milvus-io/milvus/pull/26633))

New Features

- Array datatype now supported ([26369](https://github.com/milvus-io/milvus/pull/26369))
- Introduced complex delete expressions ([25752](https://github.com/milvus-io/milvus/pull/25752))
- Reintroduced binary metric types SUBSTRUCTURE/SUPERSTRUCTURE ([26766](https://github.com/milvus-io/milvus/pull/26766))
- Vector index mmap now available ([26750](https://github.com/milvus-io/milvus/pull/26750))
- CDC: Added capability to replicate mq messages ([27240](https://github.com/milvus-io/milvus/pull/27240))
- Facilitated renaming of database names within collections ([26543](https://github.com/milvus-io/milvus/pull/26543))
- Activated bulk insert of binlog data with partition keys ([27241](https://github.com/milvus-io/milvus/pull/27241))
- Enhanced support for multiple index engines ([27178](https://github.com/milvus-io/milvus/pull/27178))
- Introduced chunk cache to fetch raw vectors:
- Newly added ChunkCache facilitates vector retrieval from storage ([26142](https://github.com/milvus-io/milvus/pull/26142))
- Implemented Tikv as a distributed meta solution:
- Integrated Tikv ([26246](https://github.com/milvus-io/milvus/pull/26246))
- Rolled out float16 vector support ([25852](https://github.com/milvus-io/milvus/pull/25852))
Note: Index for float16 vector coming in the next version
- Restful updates:
- Unveiled new interface for upsert ([27787](https://github.com/milvus-io/milvus/pull/27787))
- Context enriched with grpc metadata ([27668](https://github.com/milvus-io/milvus/pull/27668))
- Defined component listening IP ([27161](https://github.com/milvus-io/milvus/pull/27161))

Performance Enhancements

- Optimized data loading by minimizing data copy operations ([26746](https://github.com/milvus-io/milvus/pull/26746))
- Streamlined bulk inserts with batched varchar reading ([26199](https://github.com/milvus-io/milvus/pull/26199))
- Improved handling of large structs using pointer receivers ([26668](https://github.com/milvus-io/milvus/pull/26668))
- Removed unnecessary offset checks during data fills ([26666](https://github.com/milvus-io/milvus/pull/26666))
- Addressed high CPU consumption linked to proto.size ([27054](https://github.com/milvus-io/milvus/pull/27054))
- Optimized scalar column data with MADV_WILLNEED ([27170](https://github.com/milvus-io/milvus/pull/27170))

Additional Enhancements

- Robust rolling upgrade capabilities:
- Significant improvement in system availability during rolling upgrades, ensuring minimal service interruptions.
- Upgraded error messaging and handling for a seamless experience.
- Optimized flushing processes:
- Addressed issues where delete commands weren't being saved during flush operations.
- Resolved slow flush-related issues.
- Segregated task queues for Flush and DDL to prevent mutual blockages.
- Improved RocksMQ seek speeds ([27646](https://github.com/milvus-io/milvus/pull/27646)) and standalone recovery times.
- Streamlined compact tasks ([27899](https://github.com/milvus-io/milvus/pull/27899))
- Added a channel manager in DataNode ([27308](https://github.com/milvus-io/milvus/pull/27308))
- Refined chunk management:
- Removed MultiRemoveWithPrefix ([26924](https://github.com/milvus-io/milvus/pull/26924))
- Enhanced minio chunk handling ([27510](https://github.com/milvus-io/milvus/pull/27510))
- Simplified ChunkCache path initialization ([27433](https://github.com/milvus-io/milvus/pull/27433))
- Configurable read-ahead policy in ChunkCache ([27291](https://github.com/milvus-io/milvus/pull/27291))
- Rectified chunk manager usage issues ([27051](https://github.com/milvus-io/milvus/pull/27051))
- Integrated grpc compression ([27894](https://github.com/milvus-io/milvus/pull/27894))
- Decoupled client-server API interfaces ([27186](https://github.com/milvus-io/milvus/pull/27186))
- Transitioned etcd watch-related code to event manager ([27192](https://github.com/milvus-io/milvus/pull/27192))
- Displayed index details during GetSegmentInfo ([26981](https://github.com/milvus-io/milvus/pull/26981))

Bug Fixes

- Resolved concurrent string parsing expression issues ([26721](https://github.com/milvus-io/milvus/pull/26721))
- Fixed connection issues with Kafka under SASL_SSL ([26617](https://github.com/milvus-io/milvus/pull/26617))
- Implemented error responses for yet-to-be-implemented APIs, replacing panic reactions ([26589](https://github.com/milvus-io/milvus/pull/26589))
- Addressed data race concerns:
- Mitigated gRPC client data race issues ([26574](https://github.com/milvus-io/milvus/pull/26574))
- Rectified config data race with FileSource ([26518](https://github.com/milvus-io/milvus/pull/26518))
- Mended partition garbage collection issues ([27816](https://github.com/milvus-io/milvus/pull/27816)).
- Rectified SIGSEGV errors encountered when operating within gdb ([27736](https://github.com/milvus-io/milvus/pull/27736)).
- Addressed thread safety issues in glog for standalone mode ([27703](https://github.com/milvus-io/milvus/pull/27703)).
- Fixed instances where segments were inadvertently retained post-task cancellations ([26685](https://github.com/milvus-io/milvus/pull/26685)).
- Resolved loading failures for collections exceeding 128 partitions ([26763](https://github.com/milvus-io/milvus/pull/26763)).
- Ensured compatibility with scalar index types such as marisa-trie and Ascending ([27638](https://github.com/milvus-io/milvus/pull/27638)).
- Corrected issues causing retrieval to sometimes exceed specified result limits ([26670](https://github.com/milvus-io/milvus/pull/26670)).
- Solved startup failures in rootcoord due to role number limits ([27361](https://github.com/milvus-io/milvus/pull/27361)).
- Patched Kafka consumer connection leaks ([27224](https://github.com/milvus-io/milvus/pull/27224)).
- Disabled the enlarging of indices for flat structures ([27309](https://github.com/milvus-io/milvus/pull/27309)).
- Updated garbage collector to fetch metadata post-storage listing ([27203](https://github.com/milvus-io/milvus/pull/27203)).
- Fixed instances of datanode crashes stemming from simultaneous compaction and delete processes ([27167](https://github.com/milvus-io/milvus/pull/27167)).
- Ironed out issues related to concurrent load logic in querynodev2 ([26959](https://github.com/milvus-io/milvus/pull/26959)).

2.3.1

We are excited to introduce Milvus 2.3.1, a patch release that includes several enhancements and bug fixes. These improvements are designed to enhance system stability and performance.

Features

- Restored support for SUBSTRUCTURE/SUPERSTRUCTURE binary metric types ([26766](https://github.com/milvus-io/milvus/pull/26766)).
- Displayed index information during GetSegmentInfo ([26981](https://github.com/milvus-io/milvus/pull/26981)).

Performance Improvement

- Improved loading mechanism ([26746](https://github.com/milvus-io/milvus/pull/26746)): Unnecessary data copies have been reduced, resulting in enhanced overall load performance.
- Optimized MMap performance ([26750](https://github.com/milvus-io/milvus/pull/26750)): The efficiency and capacity of MMap have been enhanced.
- Refactored storage merge insert data ([26839](https://github.com/milvus-io/milvus/pull/26839)): The merging process has been optimized, leading to improved data node performance.
- Enhanced VARCHAR bulk insert speed ([26199](https://github.com/milvus-io/milvus/pull/26199)): Batch processing reads have greatly improved the speed of VARCHAR bulk inserts.
- Utilized a pointer receiver for large structures ([26668](https://github.com/milvus-io/milvus/pull/26668)): Memory copy has been enhanced by utilizing a pointer receiver.

Enhancements

- Enhanced error handling in QueryNode ([26910](https://github.com/milvus-io/milvus/pull/26910), [#26940](https://github.com/milvus-io/milvus/pull/26940), [#26918](https://github.com/milvus-io/milvus/pull/26918), [#27013](https://github.com/milvus-io/milvus/pull/27013), [#26904](https://github.com/milvus-io/milvus/pull/26904), [#26521](https://github.com/milvus-io/milvus/pull/26521), [#26773](https://github.com/milvus-io/milvus/pull/26773), [#26676](https://github.com/milvus-io/milvus/pull/26676)): Error messages have been made more descriptive and informative, improving the user experience.
- Enhanced Flush All API operations ([26802](https://github.com/milvus-io/milvus/pull/26802), [#26769](https://github.com/milvus-io/milvus/pull/26769), [#26859](https://github.com/milvus-io/milvus/pull/26859)): The Flush, FlushAll, and GetFlushAllState API operations have undergone several improvements for better data syncing with object storage.
- Improved resilience of the RPC client with retry mechanism ([26795](https://github.com/milvus-io/milvus/pull/26795)): The RPC client now has an enhanced retry mechanism, improving its resilience.
- Removed invalid offset check during data filling ([26666](https://github.com/milvus-io/milvus/pull/26666)).
- Delayed connection reset for `Canceled` or `DeadlineExceeded` gRPC code ([27014](https://github.com/milvus-io/milvus/pull/27014)).
- Achieved cleaner and more efficient error code management through miscellaneous code management and control enhancements ([26881](https://github.com/milvus-io/milvus/pull/26881), [#26725](https://github.com/milvus-io/milvus/pull/26725), [#26713](https://github.com/milvus-io/milvus/pull/26713), [#26732](https://github.com/milvus-io/milvus/pull/26732)).

Bug Fixes

- Fixed the index task retry issue ([26878](https://github.com/milvus-io/milvus/pull/26878)): Canceled tasks are no longer marked as failed without retrying.
- Addressed load stability issues ([26763](https://github.com/milvus-io/milvus/pull/26763), [#26959](https://github.com/milvus-io/milvus/pull/26959), [#26931](https://github.com/milvus-io/milvus/pull/26931), [#26813](https://github.com/milvus-io/milvus/pull/26813), [#26685](https://github.com/milvus-io/milvus/pull/26685), [#26630](https://github.com/milvus-io/milvus/pull/26630), [#27027](https://github.com/milvus-io/milvus/pull/27027)): Several stability issues related to load have been resolved.
- Resolved the segment retrieval issue ([26670](https://github.com/milvus-io/milvus/pull/26670)): Retrieving now returns the correct number of results based on the specified limit.
- Fixed memory leak when putting duplicated segments ([26693](https://github.com/milvus-io/milvus/pull/26693)).
- Fixed the bug for concurrent parsing expressions with strings ([26721](https://github.com/milvus-io/milvus/pull/26721)).
- Fixed the panic caused by empty traceID ([26754](https://github.com/milvus-io/milvus/pull/26754)) ([#26808](https://github.com/milvus-io/milvus/pull/26808)).
- Fixed the issue where timeout tasks never release the queue, leading to stuck compactions ([26593](https://github.com/milvus-io/milvus/pull/26593)).

2.3.0

The latest release of Milvus introduced a new feature that will please many users: Nvidia GPU support. This new feature brings the ability to support heterogeneous computing, which can significantly accelerate specialized workloads. With GPU support, users can expect faster and more efficient vector data searches, ultimately improving productivity and performance.

Features

**GPU support**

Milvus now supports two GPU-based IVF indexes: RAFT and FAISS. According to a benchmark on RAFT's GPU-based IVF-series indexes, GPU indexing achieves a 10x increase in search performance on large NQ cases.

- Benchmark

We have compared **RAFT-IVF-Flat** with **IVF-Flat** and HNSW at a recall rate of 95%, and obtained the following results.

| Datasets | SIFT | GIST | GLOVE | Deep |
| ------------------- | ---------------- | ---------------- | ---------------- | ----------------- |
| HNSW (VPS) | 14,537 | 791 | 1516 | 5761 |
| IVF-Flat (VPS) | 3097 | 142 | 791 | 723 |
| RAFT-IVF-Flat (VPS) | 121,568 | 5737 | 20,163 | 16,557 |

Also we benchmarked **RAFT-IVF-PQ** comparing Knowhere's fastest index HNSW at 80% recall.

| Datasets | SIFT | GIST | GLOVE | Deep |
| ------------------- | ---------------- | ---------------- | ---------------- | ----------------- |
| HNSW(VPS) | 20,809 | 2593 | 8005 | 13,291 |
| RAFT-IVF-PQ(VPS) | 271,885 | 7448 | 38,989 | 80,363 |

These benchmarks run against [Knowhere](knowhere.md) on a host with an 8-core CPU, 32 GB of RAM, and an Nvidia A100 GPU with an NQ of 100.

For details on these benchmarks, refer to [the release notes of Knowhere v2.1.0](https://github.com/milvus-io/knowhere/releases/tag/v2.1.0).

Special thanks go to wphicks and cjnolet from Nvidia for their contributions to the RAFT code.

**Memory-mapped (mmap) file I/O**

In scenarios where there is not sufficient memory for large datasets and it is insensitive to query performance, Milvus uses mmap to allow the system to treat parts of a file as if they were in memory. This can reduce memory usage and improve performance if all data is held in the system page cache.

**Range search**

The range search method returns all vectors within a certain radius around the query point, as opposed to the k-nearest ones. Range search is a valuable tool for querying vectors within a specific distance, for use cases such as anomaly detection and object distinction.

**Upsert**

Milvus now supports record upsert, similar to that in a relational database. This operation atomically deletes the original entity with the primary key (PK) and inserts a new entity. Note that upserts can only be applied to a given primary key.

**Change Data Capture(CDC)**

Change Data Capture is a process that identifies and tracks changes to data in a database. Milvus CDC provides real-time subscriptions to data and database events as they occur.

In addition to the aforementioned features, later release 2.3 of Milvus will also introduce new features such as accurate count support, Feder visualization support and growing segment indexing.

Milvus later will offer Dynamic Partitioning, which allows users to conveniently create and load a partition without releasing the collection. In addition, Milvus 2.3.0 will improve memory management, performance, and manageability under multi-partition cases.

Now, you can download [Milvus](https://hub.docker.com/r/milvusdb/milvus) and [get started](https://milvus.io).

2.3.0beta

2.2.16

Milvus 2.2.16 represents a minor patch release following Milvus 2.2.15. This update primarily concentrates on bolstering system stability, enhancing fault recovery speed, and addressing various identified issues. Notably, the Knowhere version has been updated in this release, leading to quicker loading of DiskAnn indexes.

For an optimal experience, we highly recommend all users currently on the 2.2.0 series to upgrade to this version before considering a move to 2.3.

Bug Fixes

- Corrected the docker-compose etcd health check command ([27980](https://github.com/milvus-io/milvus/pull/27980)).
- Completed the cleanup of remaining meta information after dropping a Collection ([28500](https://github.com/milvus-io/milvus/pull/28500)).
- Rectified the issue causing panic during the execution of stop logic in query coordination ([28543](https://github.com/milvus-io/milvus/pull/28543)).
- Resolved the problem of the cmux server failing to gracefully shut down ([28384](https://github.com/milvus-io/milvus/pull/28384)).
- Eliminated the reference counting logic related to the query shard service to prevent potential leaks ([28547](https://github.com/milvus-io/milvus/pull/28547)).
- Removed the logic of polling collection information from RootCoord during the restart process of QueryCoord to prevent startup failures ([28607](https://github.com/milvus-io/milvus/pull/28607)).
- Fixed parsing errors in expressions containing mixed single and double quotations ([28417](https://github.com/milvus-io/milvus/pull/28417)).
- Addressed DataNode panic during flushing delete buffer ([28710](https://github.com/milvus-io/milvus/pull/28710)).

Enhancements

- Updated Knowhere to version 1.3.20 to accelerate the loading process ([28658](https://github.com/milvus-io/milvus/pull/28658)).
- Made etcdkv request timeout configurable ([28664](https://github.com/milvus-io/milvus/pull/28664)).
- Increased the timeout duration for QueryCoord to probe the query nodes via gRPC to 2 seconds ([28647](https://github.com/milvus-io/milvus/pull/28647)).
- Bumped milvus-proto/go-api to version 2.2.16 ([28708](https://github.com/milvus-io/milvus/pull/28708)).

Page 7 of 16

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.