v2.4.1
Release date: May 6, 2024
Milvus version | Python SDK version | Java SDK version | Node.js SDK version |
---|---|---|---|
2.4.1 | 2.4.1 | 2.4.0 | 2.4.2 |
Milvus version 2.4.1 brings numerous improvements and bug fixes that aim to enhance the software's performance, observability, and stability. These improvements include a declarative resource group API, enhanced bulk insert functionality that supports Float16/BFloat16 vector data types, a refined garbage collection (GC) mechanism that reduces list operations for object storage, and other changes related to performance optimizations. Additionally, bug fixes address issues such as compilation errors, failed fuzzy matches on newline characters, incorrect parameter datatypes for RESTful interfaces, and BulkInsert raising errors on numpy files when dynamic fields are enabled.
Breaking changes
- Discontinued support for delete with an empty filter expression. (#32472)
Features
- Added support for Float16/BFloat16 vector data types in bulk insert (#32157)
- Enhanced sparse float vector to support brute force iterator search and range search (#32635)
Improvements
- Added declarative resource group api (#31930 #32297 #32536 #32666)
- Rewrote the collection observer in QueryCoord to make it task-driven(#32441)
- Refactored the data structure used in the SyncManager of DataNode to reduce memory usage and prevent errors (#32673)
- Revised the implementation of garbage collection to minimize list operations associated with object storage(#31740)
- Reduced the cpu usage when collection number is high (#32245)
- Enhanced the management of milvus.yaml by automatically generating relevant configuration items in the milvus.yaml file through code(#31832 #32357)
- Enhanced the performance of the Query by retrieving the data after performing local reduction (#32346)
- Added WithBlock option for etcd client creation (#32641)
- Used client_request_id specified by the client as the TraceID if client provided(#32264)
- Added db label to the metrics for the delete and bulk insert operations(#32611)
- Added logic to skip the verification through configuration for AutoID and PartitionKey columns(#32592)
- Refined errors related to authentication (#32253)
- Refined error logs for AllocSegmentID in DataCoord(#32351 #32335)
- Removed duplicate metrics(#32380 #32308) and clean up unused metrics(#32404 #32515)
- Added configuration option to control whether to enforce the activation of the partitionKey feature(#32433)
- Added configuration option to control the maximum amount of data that can be inserted in a single request(#32433)
- Parallelize the applyDelete operation at the segment level to accelerate the processing of Delete messages by the Delegator(#32291)
- Used index (#32232 #32505 #32533 #32595) and add cache (#32580) to accelerate frequent filtering operations in QueryCoord.
- Rewrote the data structure(#32273) and refactor code(#32389 ) to accelerate common operations in DataCood.
- Removed openblas from conan(#32002)
Bug fixes
- Fixed build milvus in rockylinux8 (#32619)
- Fixed compilation errors for SVE on ARM (#32463 #32270)
- Fixed the crash issue on ARM-based GPU images(#31980).
- Fixed regex query can't handle text with newline (#32569)
- Fixed search get empty result caused by GetShardLeaders return empty node list (#32685)
- Fixed BulkInsert raised error when encountering dynamic fields in numpy files(#32596)
- Fixed bugs related to the RESTFulV2 interface, including an important fix that allows numeric parameters in requests to accept numerical input instead of string type(#32485 #32355)
- Fixed memory leak in proxy by remove watching config event in rate limiter(#32313)
- Fixed the issue where the rate limiter incorrectly reports that the partition cannot be found when partitionName is not specified(#32647)
- Added detection between the cases of Collection being in the recovery state and not being loaded in the error type.(#32447)
- Corrected the negative queryable num entities metric (#32361)