diff --git a/site/en/release_notes.md b/site/en/release_notes.md index f60a35c97..a27398f98 100644 --- a/site/en/release_notes.md +++ b/site/en/release_notes.md @@ -68,762 +68,3 @@ id: release_notes.md > - For more information about the features of Milvus 1.0, go to [What's Inside Milvus 1.0?](https://zilliz.com/blog/Whats-Inside-Milvus-1.0). > - For more information about its roadmap, see [Milvus 1.0: The World's Most Popular Open-Source Vector Database Just Got Better](https://zilliz.com/blog/milvus-1-0-the-worlds-most-popular-open-source-vector-database-just-got-better). -## v0.10.6 - -**Release date**:2021-02-23 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.6 | 0.4.0 | 0.8.6 | 0.4.6 | - -#### Compatibility changes - -- Adds an optional argument `nbits` to the `create_index()` method for the IVF\_PQ index. [#3920](https://github.com/milvus-io/milvus/issues/3920) - -
For more information about setting IVF_PQ parameters, see Vector index.
- -#### Improvements - -- Improves the FLAT search performance on binary vectors using the AVX2 instruction set. [#1970](https://github.com/milvus-io/milvus/issues/1970) -- Adds an optional parameter `nbits` to the `create_index()` method for the IVF\_PQ index. [#3920](https://github.com/milvus-io/milvus/issues/3920) -- Supports configuring Prometheus labels `cluster_label` and `instance_label` under `metric`. [#4614](https://github.com/milvus-io/milvus/issues/4614) - -#### Fixed issues - -- The system returns a `-0` distance, if metric type is tanimoto. [#4683](https://github.com/milvus-io/milvus/issues/4683) -- A FLAT search on binary vectors causes the server to crash, if the dimension of the vectors is not multiple of 2. [#4678](https://github.com/milvus-io/milvus/issues/4678) -- The GPU cache holds more data than specified. [#4719](https://github.com/milvus-io/milvus/issues/4719) - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.6/CHANGELOG.md) for more information. - -## v0.10.5 - -**Release date**:2021-01-07 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.5 | 0.2.15 | 0.8.6 | 0.4.5 | - -#### Compatibility changes - -- The `load_collection()` method supports preloading specified partitions. [#4307](https://github.com/milvus-io/milvus/issues/4307) - -#### Improvements - -- Optimizes the process of indexing and querying. [#4454](https://github.com/milvus-io/milvus/issues/4454) - -#### Fixed issues - -- Calling `load_collection()` and `search()` in multiple threads causes Milvus to hang. [#4378](https://github.com/milvus-io/milvus/issues/4378) -- Milvus only searches the default partition if the search parameter `partition_tags` contains `_default`. [#4484](https://github.com/milvus-io/milvus/issues/4484) - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.5/CHANGELOG.md) for more information. - -## v0.10.4 - -**Release date**:2020-12-03 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.4 | 0.2.14 | 0.8.5 | 0.4.4 | - -#### Improvements - -- Improves the query performance in situations where no entities are deleted. [#3775](https://github.com/milvus-io/milvus/issues/3775) -- Reduces the time to create a large number of partitions. [#4318](https://github.com/milvus-io/milvus/issues/4318) - -#### Fixed issues - -- The server crashes when searching with IVF_PQ on GPU. [#3626](https://github.com/milvus-io/milvus/issues/3626) -- The performance of query on IVF_SQ8H worsens. [#3903](https://github.com/milvus-io/milvus/issues/3903) -- The server crashes when deleting entities. [#3906](https://github.com/milvus-io/milvus/issues/3906) -- The server occasionally hangs when creating and dropping partitions continuously. [#4012](https://github.com/milvus-io/milvus/issues/4012) -- An out-of-memory error occurs when searching on GPU. [#4174](https://github.com/milvus-io/milvus/issues/4174) -- Memory leaks when building an IVF index. [#4318](https://github.com/milvus-io/milvus/issues/4318) - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.4/CHANGELOG.md) for more information. - -## v0.10.3 - -**Release date**:2020-9-21 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.3 | 0.2.14 | 0.8.5 | 0.4.4 | - -#### Improvements - - -- Allows the user to specify `metric_type` when searching in a collection with FLAT index. [#3213](https://github.com/milvus-io/milvus/issues/3213) -- Adds more valid values to the indexing parameter `m` of IVF_PQ: An `m` is valid so long as it can be divided by `dim`, which represents the number of vector dimensions. [#3254](https://github.com/milvus-io/milvus/issues/3254) -- Expands the range of `nprobe` to [1, 16384] for all IVF indexes. [#3606](https://github.com/milvus-io/milvus/issues/3606) -- Expands the range of `top_k` in an embeddings search to [1, 16384]. [#3639](https://github.com/milvus-io/milvus/issues/3639) -- Optimizes the memory release strategy to avoid memory overuse. [#3536](https://github.com/milvus-io/milvus/issues/3536) - -#### Fixed issues - - -- Milvus running on multiple GPU devices and using IVF_SQ8H crashes if GPU cache is set too low. [#3742](https://github.com/milvus-io/milvus/issues/3742) -- Milvus reports a CUDA error when quitting, if the index is IVF_SQ8H. [#3760](https://github.com/milvus-io/milvus/issues/3760) - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.3/CHANGELOG.md) for more information. - -## v0.10.2 - -**Release date**:2020-8-15 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.2 | 0.2.14 | 0.8.4 | 0.4.4 | - - -#### Improvements - - -- Improved IVF search performance when both `nq` and `nprobe` are large. [#2653](https://github.com/milvus-io/milvus/issues/2653) - - -#### Fixed issues - -- Inaccurate calculation of the memory allocated for index files. [#2890](https://github.com/milvus-io/milvus/issues/2890) -- Search result sets based on IVF_PQ index with IP metric are incorrectly merged in situations where multiple segments are produced for the inserted data. [#2952](https://github.com/milvus-io/milvus/issues/2952) -- The server crashes if you set `cache.cache_size` smaller than the size of an index file in a multi-GPU scenario. [#3012](https://github.com/milvus-io/milvus/issues/3012) -- Search result sets based on IP metric are incorrectly merged, if you insert vectors to multiple partitions in Mishards. [#3133](https://github.com/milvus-io/milvus/issues/3133) - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.2/CHANGELOG.md) for more information. - - -## v0.10.1 - -**Release date**:2020-7-20 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.1 | 0.2.14 | 0.8.3 | 0.4.3 | - -#### Fixed issues - -- Occasionally, the result count does not match the query count. [#2578](https://github.com/milvus-io/milvus/issues/2578) -- IVF_PQ does not support IP on GPU-enabled Milvus. [#2585](https://github.com/milvus-io/milvus/issues/2585) -- Milvus reports "illegal instruction" when running on some legacy CPUs. [#2598](https://github.com/milvus-io/milvus/issues/2598) -- Updated the range of HNSW settings. [#2637](https://github.com/milvus-io/milvus/issues/2637) -- Milvus processes crash when building an index. [#2642](https://github.com/milvus-io/milvus/issues/2642) -- The default Annoy settings do not match the settings specified in the document. [#2649](https://github.com/milvus-io/milvus/issues/2649) -- Milvus does not respond under a stress test. [#2692](https://github.com/milvus-io/milvus/issues/2692) -- The precision of the returned vectors is incorrect in an HTTP interface. [#2752](https://github.com/milvus-io/milvus/issues/2752) -- The upper limit of `nprobe` is incorrect on the GPU-enabled Milvus. [#2767](https://github.com/milvus-io/milvus/issues/2767) -- The number of the vectors changes occasionally after building an index. [#2768](https://github.com/milvus-io/milvus/issues/2768) - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.1/CHANGELOG.md) for more information. - -## v0.10.0 - -**Release date**:2020-6-15 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.0 | 0.2.13 | 0.8.2 | 0.4.2 | - -#### Compatibility changes - -- Updates the Milvus configuration file. [#2510](https://github.com/milvus-io/milvus/issues/2510) - -#### Improvements - -- Optimizes the index building performance when many small segments exist. [#2373](https://github.com/milvus-io/milvus/issues/2373) -- FAISS is upgraded to 1.6.3. [#2381](https://github.com/milvus-io/milvus/issues/2381) -- Optimizes dropping collection performance when too many partitions exist. [#2394](https://github.com/milvus-io/milvus/issues/2394) -- Optimizes the implementation of k-selection algorithm for GPU-enabled Milvus. [#2466](https://github.com/milvus-io/milvus/issues/2466) - -#### Fixed issues - -- The search performance degrades on Milvus 0.9.1. [#2429](https://github.com/milvus-io/milvus/issues/2429) - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.0/CHANGELOG.md) for more information. - -## v0.9.1 - -**Release date**:2020-5-29 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.9.1 | 0.2.12 | 0.8.1 | 0.4.1 | - -#### Fixed issues - -- In a multi-partition situation, data is inserted twice after the server reboots. [#2378](https://github.com/milvus-io/milvus/issues/2378) -- A `cudaMalloc` failure occurs with GPU IVF index when nq (number of queries) is high. [#2395](https://github.com/milvus-io/milvus/issues/2395). -- Deleted vectors are still found in GPU-enabled Milvus. [#2450](https://github.com/milvus-io/milvus/issues/2450) - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.9.1/CHANGELOG.md) for more information. - -## v0.9.0 - -**Release date**:2020-5-15 - -#### Compatibility - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| -------------- | ------------------ | ---------------- | -------------- | -| 0.9.0 | 0.2.11 | 0.8.0 | 0.4.0 | - -#### New features - - -- Checks the CPU instruction set, GPU driver version, and CUDA version, when Milvus starts up. [#2054](https://github.com/milvus-io/milvus/issues/2054) [#2111](https://github.com/milvus-io/milvus/issues/2111) -- Prevents multiple Milvus instances from accessing the same Milvus database at the same time. [#2059](https://github.com/milvus-io/milvus/issues/2059) -- Supports log file rotating. [#2206](https://github.com/milvus-io/milvus/issues/2206) -- Suspends index building when a search request comes in. [#2283](https://github.com/milvus-io/milvus/issues/2283) - -#### Improvements - -- Refactors log output. [#221](https://github.com/milvus-io/milvus/issues/221) -- Upgrades OpenBLAS to improve Milvus' performance. [#1796](https://github.com/milvus-io/milvus/issues/1796) -- Unifies the vector distance calculation algorithms among FAISS, NSG, HNSW, and Annoy. [#1965](https://github.com/milvus-io/milvus/issues/1965) -- Supports SSE4.2 instruction set. [#2039](https://github.com/milvus-io/milvus/issues/2039) -- Refactors the configuration files. [#2149](https://github.com/milvus-io/milvus/issues/2149) [#2167](https://github.com/milvus-io/milvus/issues/2167) -- Uses Elkan K-means algorithm to improve the IVF index performance. [#2178](https://github.com/milvus-io/milvus/issues/2178) - -#### Fixed issues - -> See [CHANGELOG](https://github.com/milvus-io/milvus/blob/master/CHANGELOG.md) for more information. - -#### API changes - -##### Added methods - - - -| C++ | Python | Java | Go | -| -------------- | ------------------ | -------------------- | ------------------------ | -| `HasPartition` |`has_partition`|`hasPartition`|`HasPartition`| - -##### Changed methods - - - -| | C++ | Python | Java | Go | -| -------------- | -------------- | ------------------ | -------------------- | ------------------------ | -| Earlier than v0.9.0 | `DescribeCollection` |`describe_collection`|`describeCollection`|`DescribeCollection`| -| v0.9.0 | `GetCollectionInfo` |`get_collection_info`|`getCollectionInfo`|`GetCollectionInfo`| - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------- | ------------------ | ----------------------- | ----------------- | -| Earlier than v0.9.0 | `CountCollection` | `count_collection` | `getCollectionRowCount` | `CountCollection` | -| v0.9.0 | `CountEntities` | `count_entities` | `countEntities` | `CountEntities` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------- | ------------------ | ----------------- | ----------------- | -| Earlier than v0.9.0 | `ShowCollections` | `show_collections` | `showCollections` | `ShowCollections` | -| v0.9.0 | `ListCollections` | `list_collections` | `listCollections` | `ListCollections` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | -------------------- | ---------------------- | -------------------- | -------------------- | -| Earlier than v0.9.0 | `ShowCollectionInfo` | `collection_info` | `showCollectionInfo` | `ShowCollectionInfo` | -| v0.9.0 | `GetCollectionStats` | `get_collection_stats` | `getCollectionStats` | `GetCollectionStats` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | --------------- | ---------------- | --------------- | --------------- | -| Earlier than v0.9.0 | `DescribeIndex` | `describe_index` | `describeIndex` | `DescribeIndex` | -| v0.9.0 | `GetIndexInfo` | `get_index_info` | `getIndexInfo` | `GetIndexInfo` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ---------------- | ----------------- | ---------------- | ---------------- | -| Earlier than v0.9.0 | `ShowPartitions` | `show_partitions` | `showPartitions` | `ShowPartitions` | -| v0.9.0 | `ListPartitions` | `list_partitions` | `listPartitions` | `ListPartitions` | - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------- | -------------------- | ----------------- | ---------------- | -| Earlier than v0.9.0 | `GetEntitiesByID` | `get_vectors_by_ids` | `getVectorsByIds` | `GetVectorsByID` | -| v0.9.0 | `GetEntityByID` | `get_entity_by_id` | `getEntityByID` | `GetEntityByID` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------- | -------------------- | ----------------- | ----------------- | -| Earlier than v0.9.0 | `GetIDsInSegment` | `get_vector_ids` | `getVectorIds` | `GetEntityIDs` | -| v0.9.0 | `ListIDInSegment` | `list_id_in_segment` | `listIDInSegment` | `ListIDInSegment` | - - - -| | C++ | Python | Java | Go | -| ------------------- | ----- | ------------------- | --------------- | ----- | -| Earlier than v0.9.0 | *N/A* | `search_in_files` | `searchInFiles` | *N/A* | -| v0.9.0 | *N/A* | `search_in_segment` | *DELETED* | *N/A* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ------------------ | --------------------- | ------------------ | ------------------ | -| Earlier than v0.9.0 | `DeleteByID` | `delete_by_id` | `deleteByIds` | `DeleteByID` | -| v0.9.0 | `DeleteEntityByID` | `delete_entity_by_id` | `deleteEntityByID` | `DeleteEntityByID` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ------------------- | -------------------- | ------------------- | ------------------- | -| Earlier than v0.9.0 | `PreloadCollection` | `preload_collection` | `preloadCollection` | `PreloadCollection` | -| v0.9.0 | `LoadCollection` | `load_collection` | `loadCollection` | `LoadCollection` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------------------- | ----------- | ------------------------ | ----------- | -| Earlier than v0.9.0 | `FlushCollection` and `Flush` | `flush` | `flush` and `flushAsync` | `Flush` | -| v0.9.0 | `Flush` | *UNCHANGED* | *UNCHANGED* | *UNCHANGED* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | --------------------------------- | ----------- | ---------------------------- | ----------- | -| Earlier than v0.9.0 | `CompactCollection` and `Compact` | `compact` | `compact` and `compactAsync` | `Compact` | -| v0.9.0 | `Compact` | *UNCHANGED* | *UNCHANGED* | *UNCHANGED* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------- | --------- | ----------- | ----------- | -| Earlier than v0.9.0 | `Connect` | `connect` | `connect` | `Connect` | -| v0.9.0 | *UNCHANGED* | *DELETED* | *UNCHANGED* | *UNCHANGED* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------- | ----------- | ------------- | ------------- | -| Earlier than v0.9.0 | `Connected` | `connected` | `isConnected` | `IsConnected` | -| v0.9.0 | *UNCHANGED* | *DELETED* | *UNCHANGED* | *UNCHANGED* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ------------ | ------------ | ------------ | ------------ | -| Earlier than v0.9.0 | `Disconnect` | `disconnect` | `disconnect` | `Disconnect` | -| v0.9.0 | *UNCHANGED* | *DELETED* | *UNCHANGED* | *UNCHANGED* | - - - - - - - - - - - - -## v0.8.0 - -**Release date**:2020-4-15 - -**Compatibility** - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| -------------- | ------------------ | ---------------- | -------------- | -| 0.8.0 | 0.2.10 | 0.7.0 | 0.3.0 | - -#### New features - -- **Annoy index support** - - Added support for Annoy index type. See [our documentation](index.md) for more information. [#261](https://github.com/milvus-io/milvus/issues/261) - -- **Vector deletion** - - Added support to delete one or multiple vectors for more index types. [#1655](https://github.com/milvus-io/milvus/issues/1655) [#1660](https://github.com/milvus-io/milvus/issues/1660) [#1661](https://github.com/milvus-io/milvus/issues/1661) [#1849](https://github.com/milvus-io/milvus/issues/1849) - - Including: Flat/IVFlat/IVFPQ/IVFSQ8/IVFSQ8H/NSG/HNSW/Annoy - -#### Improvements - -- Added new metric SuperStructure and SubStructure in HTTP module. [#1784](https://github.com/milvus-io/milvus/issues/1784) - -#### Fixed issues - -- Limited the maximum number of partitions to 4096. [#1276](https://github.com/milvus-io/milvus/issues/1276) -- Forbidden to create partition with name `_default`. [#1762](https://github.com/milvus-io/milvus/issues/1762) -- Resolved the issue that concurrent operations from multiple clients cause system crash. [#1789](https://github.com/milvus-io/milvus/issues/1789) -- Resolved the issue that some raw vectors are missed when the raw data file size is larger than 2GB. [#1883](https://github.com/milvus-io/milvus/issues/1883) - -## v0.7.1 - -**Release date**:2020-3-30 - -**Compatibility** - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| -------------- | ------------------ | ---------------- | -------------- | -| 0.7.1 | 0.2.9 | 0.6.0 | 0.2.0 | - -#### New features - -- Added new distance metrics, including substructure and superstructure, for the `FLAT` index type. These metrics are used for substructure and superstructure search of chemical structures.[#1603](https://github.com/milvus-io/milvus/issues/1603). - -#### Improvements - -- Improved the performance of the compact operation. [#1619](https://github.com/milvus-io/milvus/issues/1619) -- Improved search performance using CPU, especially for scenarios with multiple, concurrent connections. [#267](https://github.com/milvus-io/milvus/issues/267) -- Improved the search performance when nq is less than the number of threads in the CPU. [#1690](https://github.com/milvus-io/milvus/issues/1690) -- Milvus performs a combined search for the same search requests from multiple clients, thus significantly improving search speed. [#1728](https://github.com/milvus-io/milvus/issues/1728) -- Upgraded Mishards to 0.7.1. [#1698](https://github.com/milvus-io/milvus/issues/1698) - -#### Fixed issues - -Refer to [CHANGELOG](https://github.com/milvus-io/milvus/blob/master/CHANGELOG.md) for details. - ---- - -## v0.7.0 - -**Release date**:2020-3-10 - -**Compatibility** - -| Milvus version | Python SDK version | Java SDK version | Go SDK version | -| -------------- | ------------------ | ---------------- | -------------- | -| 0.7.0 | 0.2.8 | 0.5.0 | 0.1.0 | - -#### New features - -- **Vector deletion** - - Added support to delete one or multiple vectors. If you performed vector deletion on a collection, later search operations for this collection are limited to part of the index types, including FLAT, IVFLAT, IVFSQ8, etc. Milvus is planned to support other index types in the upcoming versions.[#861](https://github.com/milvus-io/milvus/pull/861) - -- **Get vector by ID** - - Added support to get vector data by ID. [#861](https://github.com/milvus-io/milvus/pull/861) - -- **Flush and compact** - - Added support to flushing and compaction. You can configure flushing at an interval or manual flushing to avoid data loss. If some vectors are deleted from a segment, the space taken by the deleted vectors cannot be released automatically. You can compact segments in a collection to release space. [#861](https://github.com/milvus-io/milvus/pull/861) [#1426](https://github.com/milvus-io/milvus/pull/1426) - -- **Change Milvus server configurations during runtime** - - Added support to update Milvus server configurations during runtime. You can use Milvus clients to update the parameters. Changes to some parameters take effect immediately without restarting Milvus. [#665](https://github.com/milvus-io/milvus/pull/665) - -- **Write-Ahead logging (WAL)** - - Added support for WAL, which significantly improves the reliability of data operations. You can configure WAL settings in the Milvus server configuration file (`server_config.yaml`). [#830](https://github.com/milvus-io/milvus/pull/830) - -- **RESTful API** - - Added RESTful API. Refer to [RESTful API Readme](https://github.com/milvus-io/milvus/blob/master/core/src/server/web_impl/README.md) for more information. - -- **Go SDK** - - Added Go SDK. Refer to [https://github.com/milvus-io/milvus-sdk-go](https://github.com/milvus-io/milvus-sdk-go) for more information. - -- **HNSW index support** - - Added support for HNSW index type. Refer to [Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs](https://arxiv.org/abs/1603.09320) for more information about HNSW. [#853](https://github.com/milvus-io/milvus/pull/853) - -- **Jaccard/Hamming/Tanimoto distance support** - - Added support for Jaccard distance, Hamming distance, and Tanimoto distance. [#823](https://github.com/milvus-io/milvus/pull/823) - -- **Pushgateway support in Prometheus** - - Added support for Pushgateway in Prometheus. Pushgateway makes it possible for short-lived, batch metrics to be acquired by Prometheus. [#813](https://github.com/milvus-io/milvus/pull/813) - -- **AVX 512** - - Added support for AVX 512 instruction set. Milvus theoretically supports all CPUs with AVX 512. [#1122](https://github.com/milvus-io/milvus/pull/1122) - -#### Changes - -- **Interface updates for index creation and vector search** - - Starting from Milvus 0.7.0, part of the Milvus client parameters for index creation and vector search use JSON strings as values. - -- **Milvus server configuration file updates** - - Starting from Milvus 0.7.0, the Milvus server configuration file (`server_config.yaml`) is updated to 0.2 with parameter changes. - -- **Term updates** - - As of Milvus 0.7.0, `Table` is named as `Collection` in Milvus. - -#### Fixed issues - -- Resolved the issue that duplicate IDs may be generated when inserting vector data using auto-generated IDs. [#1508](https://github.com/milvus-io/milvus/pull/1508) - ---- - -## v0.6.0 - -**Release date**: 2019-12-07 - -**Version Compatibility** - -| Milvus version | pymilvus version | Java SDK version | -| -------------- | ---------------- | ---------------- | -| 0.6.0 | 0.2.6 | 0.4.0 | - -#### New features - -- **CPU-only Milvus** - - Milvus v0.6.0 provides Docker images for both CPU-only and GPU support Milvus. Milvus compilation on Docker is also supported on machines with or without GPU. [#192](https://github.com/milvus-io/milvus/pull/192) - -- **Table partitioning** - - Add table partitioning funtion to secure fast query performance for incremental data. Partitioning APIs are added to Python, Java and C++ SDK to support partition creation, vector insertion into a specified partition and query against a specified partition, etc. [#245](https://github.com/milvus-io/milvus/pull/245) - -- **Experimental features** - - The experimental features in Milvus are still under development and subject to change. They may contain unknown errors, and are intended for testing and user feedback gathering. - - - **Mishards** - - Propose Mishards, a Milvus sharding middleware, as the distributed deployment solution. Mishards provides unlimited extension of memory and computation capacity through request forwarding, read/write splitting, horizontal scalability and dynamic extension. [#232](https://github.com/milvus-io/milvus/pull/232) - - - **New index types** - - Start supporting new experimental index types such as `SPTAG-KDT`, `SPTAG-BKT`, `RNSG` and `IVFPQ`. [SPTAG#438](https://github.com/milvus-io/milvus/pull/438) [RNSG#554](https://github.com/milvus-io/milvus/pull/554) [IVFPQ#324](https://github.com/milvus-io/milvus/pull/324) - -- **Index test reports** - - Provide performance [test reports](https://github.com/milvus-io/milvus/tree/master/docs) for `IVFFLAT`, `IVFSQ8` and `IVFSQ8H` indexes. - -#### Improvements - -- **Milvus internal FAISS** - - In addition to original FAISS, Milvus has made deep optimizations to increase query performance and support more index types such as `IVFSQ8H`. Now this part of internal FAISS is open sourced. [#585](https://github.com/milvus-io/milvus/pull/585) - -- **Multiple GPUs for index building** - - Support index building by multiple GPUs to reduce index building and overall query time. You can specify multiple GPUs for index building process through Milvus configuration parameter `build_index_resources`. [#414](https://github.com/milvus-io/milvus/pull/414) - -#### Fixed issues - -- Solved the issue of increased memory usage during vector queries. [#335](https://github.com/milvus-io/milvus/pull/335) - ---- - -## v0.5.3 - -**Release date**: 2019-11-14 - -**Version Compatibility** - -| Milvus version | pymilvus version | Java SDK version | -| -------------- | ---------------- | ---------------- | -| 0.5.3 | 0.2.5 | 0.3.0 | - -#### Improvements - -- Double the transmission speed of search results to the client application through the following updates to gRPC: - - - Optimize messages. - - Change the API of generated code. - - Remove compression. - -- Python SDK - - - Divide the storage of search result ids and distances into separate arrays, which reduces the API response time. - - Add a new option to retrieve a specific target vector in search results: `id = results.id_array[i][j], distance = results.distance_array[i][j]`. - - Add a new option for looping over arrays, which takes much less time if `nq` and `top_k` is large. - - ```python - >> for id_list, dis_list in zip(results.id_array, results.distance_array): - >> for id, dis in zip(id_list, dis_list): - >> print("id={}, distance={}".format(id, dis)) - ``` - -- Java SDK - - - Add keepalive and idleTimeout settings when connecting to Milvus server. - - Now users can retrieve search result ids and distances separately through `getResultIdsList` and `getResultDistancesList` with better performance, or they can retrieve them together as a list of `QueryResult` objects through `getQueryResultsList`. - -- C++ SDK - - - Now C++ SDK uses shared library. - - Add README file. - -- Enhance the search performance of `IVF_SQ8H`. - ---- - -## v0.5.2 - -**Release date**: 2019-11-07 - -#### Fixed issues - -Add a system lock to avoid the generation of files with duplicated data file names, which fixes the bug of search failure due to false deletion of files that have duplicated file names. - -#### Improvements - -Add a Japanese version of README file. (from an external contributor) - ---- - -## v0.5.1 - -**Release date**: 2019-11-04 - -#### Features - -- Start supporting GPU-only mode for `IVF_SQ8` and `IVFFLAT` index types. -- Add configuration parameter `gpu_search_threshold` to control GPU-only execution trigger point. - -#### Improvements - -- Reduce memory footprint of queries. -- Optimize query performance to achieve unfluctuating search speed. - ---- - -## v0.5.0 - -**Release date**: 2019-10-15 - -#### Features - -- Start supporting a new index type `IVF_SQ8H`. - -- Add Java SDK. - -- Add preload table into memory at Milvus startup. - ---- - -## v0.4.0 - -**Release date**: 2019-09-11 - -#### Features - -- Milvus now supports adding multiple GPU scheduler for resource management. - -- Start supporting a new index type `IVF_SQ8`. - -- Add new API about index creation, user-defined vector ids, and vector deletion by date range, etc. - -#### Improvements - -- Use gRPC as the communication facility. - ---- - -## v0.3.1 - -**Release date**: 2019-08-08 - -#### Features - -- Added a new type of index `IVFSQ` which could significantly improve the overall throughput of vector processing. -- Added a new metric of vector distance calculation `IP` (Inner Product), in addition to `L2` (Euclidean Distance). -- Added multiple parameters which optimizes index building, search precision and search speed. - -#### Improvements - -- When the data size is huge and cannot fit in the data file on one disk, you can add multiple secondary data storage directories on other disks. -- You can choose if to enable parallel computing of vectors by multiple threads, by configuring parameter `parallel_reduce`. -- You can designate a portion of the memory for buffer usage of data insertion, by configuring parameter `insert_buffer_size`. -- In regard to cache management, by configuring `cache_free_percent`, you can now decide, when the cache reaches its capacity, how much data should be kept instead of being erased. -- You can enable simultaneous inserting and searching of vectors by setting `insert_cache_immediately` to `True`. -- Search results are evaluated based on the distances between search results and the target vectors, rather than the score. - ---- - -## v0.3.0 - -**Release date**: 2019-06-30 - -#### Features - -- Distributed architecture based on Celery -- MinIO based storage separation solution -- You can now delete a table -- ARM64 architecture is now supported - -#### Improvements - -- File life cycle management -- More interface on C++/Python SDK -- Lots of update on Milvus configure -- Mem table serialization and SSTable consolidation strategy improved -- Improved the Meta management implementation -- 90%+ unit test code coverage -- CMake makefile refactoring -- Improved the time range query - ---- - -## v0.2.1 - -**Release date**: 2019-06-14 - -#### Features - -Added data loading and computation pipeline. - -#### Improvements - -You can now search data within a specific date range. - ---- - -## v0.2.0 - -**Release date**: 2019-05-31 - -#### Features - -- Added C++/Python SDK. -- Added monitoring items on Prometheus-based monitoring dashboard. -- Added vector indexing built on Inverted File. -- Single node Milvus realized. diff --git a/site/zh-CN/release_notes.md b/site/zh-CN/release_notes.md index 7d030688f..09230c6c4 100644 --- a/site/zh-CN/release_notes.md +++ b/site/zh-CN/release_notes.md @@ -67,760 +67,3 @@ id: release_notes.md > - 更多有关新增功能的信息,详见 [Milvus 1.0 新增功能](https://zilliz.com/blog/Whats-Inside-Milvus-1.0)。 > - 关于产品路线图,详见 [Milvus 1.0 产品路线图](https://zilliz.com/blog/milvus-1-0-the-worlds-most-popular-open-source-vector-database-just-got-better)。 -## v0.10.6 - -**发布时间**:2021-02-23 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.6 | 0.4.0 | 0.8.6 | 0.4.6 | - -#### 升级必看 - -- 在 `create_index()` 方法中增加了可选参数 `nbits`,用于 IVF\_PQ 索引。[#3920](https://github.com/milvus-io/milvus/issues/3920) - -
关于 IVF_PQ 参数信息设置,详见 向量索引
- -#### 主要改进 - -- 用 AVX2 指令集优化了 FLAT 索引在二值型向量上的查询性能。[#1970](https://github.com/milvus-io/milvus/issues/1970) -- 在 `create_index()` 方法中增加了可选参数 `nbits`,用于 IVF\_PQ 索引。[#3920](https://github.com/milvus-io/milvus/issues/3920) -- 支持在 `metric` 中设置 Prometheus 的配置项 `cluster_label` 和 `instance_label` (由爱奇艺实现)。[#4614](https://github.com/milvus-io/milvus/issues/4614) - -#### 问题修复 - -- 采用谷本距离查询时系统会返回 `-0` 的距离。[#4683](https://github.com/milvus-io/milvus/issues/4683) -- 对维度不是 2 的整数倍的二值型向量进行 FLAT 暴搜会导致服务端崩溃。[#4678](https://github.com/milvus-io/milvus/issues/4678) -- GPU 缓存的存储内容超过指定值。[#4719](https://github.com/milvus-io/milvus/issues/4719) - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.6/CHANGELOG.md) 了解更多已修复问题。 - -## v0.10.5 - -**发布时间**:2020-01-07 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.5 | 0.2.15 | 0.8.6 | 0.4.5 | - -#### 升级必看 - -- `load_collection()` 方法支持预加载指定分区。[#4307](https://github.com/milvus-io/milvus/issues/4307) - -#### 主要改进 - -- 优化了系统建索引和查询的过程。[#4454](https://github.com/milvus-io/milvus/issues/4454) - -#### 问题修复 - -- 在多线程中调用 `load_collection()` 和 `search()` 方法会造成 Milvus 死机。[#4378](https://github.com/milvus-io/milvus/issues/4378) -- Milvus 在搜索参数 `partition_tags` 包含 `_default` 字样时仅搜索默认分区。[#4484](https://github.com/milvus-io/milvus/issues/4484) - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.5/CHANGELOG.md) 了解更多已修复问题。 - -## v0.10.4 - -**发布时间**:2020-12-03 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.4 | 0.2.14 | 0.8.5 | 0.4.4 | - -#### 主要改进 - -- 提高了无 Entity 被删除的场景下的查询性能。 [#3775](https://github.com/milvus-io/milvus/issues/3775) -- 减少了创建大量分区所需时间。[#4318](https://github.com/milvus-io/milvus/issues/4318) - -#### 问题修复 - -- 修复了一个基于 IVF_PQ 索引采用 GPU 查询时服务端崩溃的问题。[#3626](https://github.com/milvus-io/milvus/issues/3626) -- 修复了一个基于 IVF_SQ8H 索引查询性能恶化的问题。[#3903](https://github.com/milvus-io/milvus/issues/3903) -- 修复了一个服务端在删除 Entity 时崩溃的问题。[#3906](https://github.com/milvus-io/milvus/issues/3906) -- 修复了一个偶现的在持续创建、删除分区时服务端死机的问题。[#4012](https://github.com/milvus-io/milvus/issues/4012) -- 修复了一个使用 GPU 搜索时出现的 out-of-memory 报错。[#4174](https://github.com/milvus-io/milvus/issues/4174) -- 修复了一个创建 IVF 索引时出现内存泄漏的问题。[#4318](https://github.com/milvus-io/milvus/issues/4318) - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.4/CHANGELOG.md) 了解更多已修复问题。 - -## v0.10.3 - -**发布时间**:2020-9-21 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.3 | 0.2.14 | 0.8.5 | 0.4.4 | - -#### 主要改进 - - -- 若用户使用 FLAT 索引,支持在查询时指定 `metric_type`。[#3213](https://github.com/milvus-io/milvus/issues/3213) -- 增加了 IVF_PQ 索引的建索引参数 `m` 的有效值:能被向量维度 `dim` 整除的 `m` 值均为有效值。[#3254](https://github.com/milvus-io/milvus/issues/3254) -- 将倒排文件(IVF)类索引的查询参数 `nprobe` 的有效范围增加至 [1, 16384]。[#3606](https://github.com/milvus-io/milvus/issues/3606) -- 将查询语句中 `top_k` 的有效范围增加至 [1, 16384]。[#3639](https://github.com/milvus-io/milvus/issues/3639) -- 优化了内存释放策略以避免内存过度使用。[#3536](https://github.com/milvus-io/milvus/issues/3536) - -#### 问题修复 - - -- 修复了在多 GPU 设备上采用 IVF_SQ8H 索引时若 GPU 缓存设置过小, Milvus 会崩溃的问题。[#3742](https://github.com/milvus-io/milvus/issues/3742) -- 修复了在采用 IVF_SQ8H 索引时,Milvus 退出时报的一个 CUDA 错误。[#3760](https://github.com/milvus-io/milvus/issues/3760) - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.3/CHANGELOG.md) 了解更多已修复问题。 - -## v0.10.2 - -**发布时间**:2020-8-15 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.2 | 0.2.14 | 0.8.4 | 0.4.4 | - - -#### 主要改进 - - -- 提升了大 `nq` 和大 `nprobe` 情况下的搜索性能。[#2653](https://github.com/milvus-io/milvus/issues/2653) - - -#### 问题修复 - -- 修复了缓存中索引占用大小计算不准确的问题。[#2890](https://github.com/milvus-io/milvus/issues/2890) -- 修复了 IVF_PQ 索引中 IP 距离结果归并不正确的问题。[#2952](https://github.com/milvus-io/milvus/issues/2952) -- 修复了多 GPU 场景下,如果 `cache.cache_size` 设置小于单个索引文件大小,搜索时会造成系统崩溃的问题。[#3012](https://github.com/milvus-io/milvus/issues/3012) -- 修复了在 Mishards 中插入数据至多个分区,IP 距离结果归并不正确的问题。[#3133](https://github.com/milvus-io/milvus/issues/3133) - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.2/CHANGELOG.md) 了解更多已修复问题。 - - - -## v0.10.1 - -**发布时间**:2020-7-20 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.1 | 0.2.14 | 0.8.3 | 0.4.3 | - -#### 问题修复 - -- 修复了一个查询结果与查询行数不匹配的问题。[#2578](https://github.com/milvus-io/milvus/issues/2578) -- 修复了一个 GPU 上 IVF_PQ 索引无法支持 IP 的问题。[#2585](https://github.com/milvus-io/milvus/issues/2585) -- 修复了一些老的 CPU 上运行时出现 illegal instruction 的问题。[#2598](https://github.com/milvus-io/milvus/issues/2598) -- 调整了 HNSW 参数范围。[#2637](https://github.com/milvus-io/milvus/issues/2637) -- 修复了一个构建索引可能会导致 Milvus 进程崩溃退出的问题。[#2642](https://github.com/milvus-io/milvus/issues/2642) -- 修复了一个 Annoy 索引默认参数与文档不对应的问题。[#2649](https://github.com/milvus-io/milvus/issues/2649) -- 修复了一个压力测试下出现的 Milvus 无响应的问题。[#2692](https://github.com/milvus-io/milvus/issues/2692) -- 修复了一个 HTTP 接口返回向量精度错误的问题。[#2752](https://github.com/milvus-io/milvus/issues/2752) -- 修复了一个 GPU 版本中 `nprobe` 上限错误的问题。[#2767](https://github.com/milvus-io/milvus/issues/2767) -- 修复了一个构建索引后可能会导致集合中向量条数变化的问题。[#2768](https://github.com/milvus-io/milvus/issues/2768) - - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.1/CHANGELOG.md) 了解更多已修复问题。 - -## v0.10.0 - -**发布时间**:2020-6-15 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| :------------- | :----------------- | :--------------- | :------------- | -| 0.10.0 | 0.2.13 | 0.8.2 | 0.4.2 | - -#### 兼容性改动 - -- 更新了 Milvus 配置文件。[#2510](https://github.com/milvus-io/milvus/issues/2510) - -#### 主要改进 - -- 优化了系统在存在多个小分段情况下的索引创建时间。 [#2373](https://github.com/milvus-io/milvus/issues/2373) -- 将 FAISS 升级至 1.6.3。 [#2381](https://github.com/milvus-io/milvus/issues/2381) -- 降低了系统在存在大量分区时删除集合需要的时间。[#2394](https://github.com/milvus-io/milvus/issues/2394) -- 在 GPU 版 Milvus 上优化了 k-selection 算法的实现。[#2466](https://github.com/milvus-io/milvus/issues/2466) - -#### 问题修复 - -- 修复了一个搜索性能降低的问题。[#2429](https://github.com/milvus-io/milvus/issues/2429) - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/0.10.0/CHANGELOG.md) 了解更多已修复问题。 - - -## v0.9.1 - -**发布时间**:2020-5-29 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| :---------- | :-------------- | :------------ | :---------- | -| 0.9.1 | 0.2.12 | 0.8.1 | 0.4.1 | - -#### 问题修复 - -- 多分区情况下,服务器重启后数据会被重复插入两次。[#2378](https://github.com/milvus-io/milvus/issues/2378) - -- 使用 GPU IVF 索引时,如果查询次数 nq 过高,系统会报 `cudaMalloc` 错误。 [#2395](https://github.com/milvus-io/milvus/issues/2395) -- 向量删除后依然会被 GPU 加速版 Milvus 找到。 [#2450](https://github.com/milvus-io/milvus/issues/2450) - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/master/CHANGELOG.md) 了解更多已修复问题。 - - - - -## v0.9.0 - -**发布时间**:2020-5-15 - -#### 版本兼容 - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| -------------- | ------------------ | ---------------- | -------------- | -| 0.9.0 | 0.2.11 | 0.8.0 | 0.4.0 | - -#### 新增功能 - - -- 支持在 Milvus 启动时检查 CPU 指令集、GPU 驱动版本 和 CUDA 版本。 [#2054](https://github.com/milvus-io/milvus/issues/2054) [#2111](https://github.com/milvus-io/milvus/issues/2111) -- 避免多个 Milvus 实例同时操作同一 Milvus 数据。 [#2059](https://github.com/milvus-io/milvus/issues/2059) -- 支持日志文件轮转。 [#2206](https://github.com/milvus-io/milvus/issues/2206) -- 处理搜索请求时暂停创建索引。[#2283](https://github.com/milvus-io/milvus/issues/2283) - -#### 主要改进 - -- 重构了日志输出。 [#221](https://github.com/milvus-io/milvus/issues/221) -- 升级了 OpenBLAS 版本以提高 Milvus 性能。 [#1796](https://github.com/milvus-io/milvus/issues/1796) -- 统一了 FAISS、NSG、HNSW 和 Annoy 的向量距离计算方法。[#1965](https://github.com/milvus-io/milvus/issues/1965) -- 支持 SSE4.2 指令集。 [#2039](https://github.com/milvus-io/milvus/issues/2039) -- 重构了配置文件。 [#2149](https://github.com/milvus-io/milvus/issues/2149) [#2167](https://github.com/milvus-io/milvus/issues/2167) -- 采用了 Elkan K-means 算法提高 IVF 索引性能。 [#2178](https://github.com/milvus-io/milvus/issues/2178) - -#### 问题修复 - -> 详见 [CHANGELOG](https://github.com/milvus-io/milvus/blob/master/CHANGELOG.md) 了解更多已修复问题。 - -#### API 变更 - -##### 新增方法 - - - -| C++ | Python | Java | Go | -| -------------- | --------------- | -------------- | -------------- | -| `HasPartition` | `has_partition` | `hasPartition` | `HasPartition` | - -##### 变更方法 - - - -| | C++ | Python | Java | Go | -| ------------------- | -------------------- | --------------------- | -------------------- | -------------------- | -| v0.9.0 之前版本 | `DescribeCollection` | `describe_collection` | `describeCollection` | `DescribeCollection` | -| v0.9.0 | `GetCollectionInfo` | `get_collection_info` | `getCollectionInfo` | `GetCollectionInfo` | - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------- | ------------------ | ----------------------- | ----------------- | -| v0.9.0 之前版本 | `CountCollection` | `count_collection` | `getCollectionRowCount` | `CountCollection` | -| v0.9.0 | `CountEntities` | `count_entities` | `countEntities` | `CountEntities` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------- | ------------------ | ----------------- | ----------------- | -| v0.9.0 之前版本 | `ShowCollections` | `show_collections` | `showCollections` | `ShowCollections` | -| v0.9.0 | `ListCollections` | `list_collections` | `listCollections` | `ListCollections` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | -------------------- | ---------------------- | -------------------- | -------------------- | -| v0.9.0 之前版本 | `ShowCollectionInfo` | `collection_info` | `showCollectionInfo` | `ShowCollectionInfo` | -| v0.9.0 | `GetCollectionStats` | `get_collection_stats` | `getCollectionStats` | `GetCollectionStats` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | --------------- | ---------------- | --------------- | --------------- | -| v0.9.0 之前版本 | `DescribeIndex` | `describe_index` | `describeIndex` | `DescribeIndex` | -| v0.9.0 | `GetIndexInfo` | `get_index_info` | `getIndexInfo` | `GetIndexInfo` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ---------------- | ----------------- | ---------------- | ---------------- | -| v0.9.0 之前版本 | `ShowPartitions` | `show_partitions` | `showPartitions` | `ShowPartitions` | -| v0.9.0 | `ListPartitions` | `list_partitions` | `listPartitions` | `ListPartitions` | - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------- | -------------------- | ----------------- | ---------------- | -| v0.9.0 之前版本 | `GetEntitiesByID` | `get_vectors_by_ids` | `getVectorsByIds` | `GetVectorsByID` | -| v0.9.0 | `GetEntityByID` | `get_entity_by_id` | `getEntityByID` | `GetEntityByID` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------- | -------------------- | ----------------- | ----------------- | -| v0.9.0 之前版本 | `GetIDsInSegment` | `get_vector_ids` | `getVectorIds` | `GetEntityIDs` | -| v0.9.0 | `ListIDInSegment` | `list_id_in_segment` | `listIDInSegment` | `ListIDInSegment` | - - - -| | C++ | Python | Java | Go | -| ------------------- | ----- | ------------------- | --------------- | ----- | -| v0.9.0 之前版本 | *N/A* | `search_in_files` | `searchInFiles` | *N/A* | -| v0.9.0 | *N/A* | `search_in_segment` | *DELETED* | *N/A* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ------------------ | --------------------- | ------------------ | ------------------ | -| v0.9.0 之前版本 | `DeleteByID` | `delete_by_id` | `deleteByIds` | `DeleteByID` | -| v0.9.0 | `DeleteEntityByID` | `delete_entity_by_id` | `deleteEntityByID` | `DeleteEntityByID` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ------------------- | -------------------- | ------------------- | ------------------- | -| v0.9.0 之前版本 | `PreloadCollection` | `preload_collection` | `preloadCollection` | `PreloadCollection` | -| v0.9.0 | `LoadCollection` | `load_collection` | `loadCollection` | `LoadCollection` | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------------------------- | ----------- | ------------------------ | ----------- | -| v0.9.0 之前版本 | `FlushCollection` 和 `Flush` | `flush` | `flush` 和 `flushAsync` | `Flush` | -| v0.9.0 | `Flush` | *不变* | *不变* | *不变* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | --------------------------------- | ----------- | ---------------------------- | ----------- | -| v0.9.0 之前版本 | `CompactCollection` 和 `Compact` | `compact` | `compact` 和 `compactAsync` | `Compact` | -| v0.9.0 | `Compact` | *不变* | *不变* | *不变* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------- | --------- | ----------- | ----------- | -| v0.9.0 之前版本 | `Connect` | `connect` | `connect` | `Connect` | -| v0.9.0 | *不变* | *删除* | *不变* | *不变* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ----------- | ----------- | ------------- | ------------- | -| v0.9.0 之前版本 | `Connected` | `connected` | `isConnected` | `IsConnected` | -| v0.9.0 | *不变* | *删除* | *不变* | *不变* | - - - - - -| | C++ | Python | Java | Go | -| ------------------- | ------------ | ------------ | ------------ | ------------ | -| v0.9.0 之前版本 | `Disconnect` | `disconnect` | `disconnect` | `Disconnect` | -| v0.9.0 | *不变* | *删除* | *不变* | *不变* | - - - - - - - -## v0.8.0 - -**发布时间**:2020-4-15 - -**版本兼容** - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| ----------- | --------------- | ------------- | ----------- | -| 0.8.0 | 0.2.10 | 0.7.0 | 0.3.0 | - -#### 新增功能 - -- **Annoy 索引的支持** - - 增加 `Annoy` 索引类型,关于 `Annoy` 索引的详细介绍请参考[文档](index.md)。[#261](https://github.com/milvus-io/milvus/issues/261) - -- **向量删除** - - 新增下列索引类型支持删除操作。[#1655](https://github.com/milvus-io/milvus/issues/1655) [#1660](https://github.com/milvus-io/milvus/issues/1660) [#1661](https://github.com/milvus-io/milvus/issues/1661) [#1849](https://github.com/milvus-io/milvus/issues/1849) - - 包括:Flat/IVFlat/IVFPQ/IVFSQ8/IVFSQ8H/NSG/HNSW/Annoy - -#### 主要改进 - -- 在 http 模块支持超集/子集距离。[#1784](https://github.com/milvus-io/milvus/issues/1784) - -#### Bug 修复 - -- 限制 partition 数目上限为4096。[#1276](https://github.com/milvus-io/milvus/issues/1276) -- 禁止创建 `_default` partition。[#1762](https://github.com/milvus-io/milvus/issues/1762) -- 解决多客户端并发时系统崩溃的问题。[#1789](https://github.com/milvus-io/milvus/issues/1789) -- 解决读取 >2GB 原始数据文件时部分数据丢失的问题。[#1883](https://github.com/milvus-io/milvus/issues/1883) - -## v0.7.1 - -**发布时间**:2020-3-30 - -**版本兼容** - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| ----------- | --------------- | ------------- | ----------- | -| 0.7.1 | 0.2.9 | 0.6.0 | 0.2.0 | - -#### 新增功能 - -- 针对 `FLAT` 索引类型,新增子结构(substructure)和超结构(superstructure)距离计算方式。这两种距离计算方式常用于化学分子式的子结构和超结构搜索 [#1603](https://github.com/milvus-io/milvus/issues/1603)。 - -#### 主要改进 - -- 改善了 Compact 操作的性能。[#1619](https://github.com/milvus-io/milvus/issues/1619) -- 改善了 Milvus 使用 CPU 进行查询的性能,特别是提高了在多连接并发场景下的查询性能。[#267](https://github.com/milvus-io/milvus/issues/267) -- 改善了 nq 小于 CPU 线程数时 Milvus 的搜索性能。[#1690](https://github.com/milvus-io/milvus/issues/1690) -- 对于多个客户端的相同查询请求,Milvus 会将进行合并查询,从而显著提高查询速度。[#1728](https://github.com/milvus-io/milvus/issues/1728) -- Mishards 同步升级到 0.7.1。[#1698](https://github.com/milvus-io/milvus/issues/1698) - -#### Bug 修复 - -- 详情请参考 [CHANGELOG](https://github.com/milvus-io/milvus/blob/master/CHANGELOG.md)。 - ---- - -## v0.7.0 - -**发布时间**:2020-3-10 - -**版本兼容** - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | -| ----------- | --------------- | ------------- | ----------- | -| 0.7.0 | 0.2.8 | 0.5.0 | 0.1.0 | - -#### 新增功能 - -- **向量删除** - - 新增了对单条或多条向量的删除功能。如果你对一个集合进行了向量删除操作,后续对这个集合的搜索操作仅支持一部分索引类型,包括在 CPU 上运行的 Flat、IVFlat、IVFSQ8 等。Milvus 的后续版本将为其他索引类型提供支持。[#861](https://github.com/milvus-io/milvus/issues/861) - -- **向量读取** - - 新增了通过向量 ID 读取对应的向量值的功能。[#861](https://github.com/milvus-io/milvus/issues/861) - -- **数据落盘与压缩** - - 新增了数据落盘与压缩功能。你可以设置定时落盘或者手动落盘,从而避免数据丢失。如果一个段中的向量数据被删除,被删除的向量数据占据的空间并不会自动释放。你可以对集合中的段进行压缩操作以释放多余空间。[#861](https://github.com/milvus-io/milvus/issues/861) [#1426](https://github.com/milvus-io/milvus/pull/1426) - -- **运行时更改 Milvus 服务端参数** - - 新增了运行时更改 Milvus 服务端参数的功能。你可以通过 Milvus 客户端对 Milvus 服务端参数进行更改,部分参数更改后可即时生效,无需重启 Milvus。[#665](https://github.com/milvus-io/milvus/issues/665) - -- **预写式日志(Write-Ahead Logging, WAL)** - - 新增了 WAL 功能,可以大大提高数据操作的可靠性。你可以在 Milvus 服务端配置文件(`server_config.yaml`)中对 WAL 进行设置。[#830](https://github.com/milvus-io/milvus/issues/830) - -- **RESTful API** - - 新增了 RESTful API。详细信息请参考 [RESTful API Readme](https://github.com/milvus-io/milvus/blob/master/core/src/server/web_impl/README.md)。 - -- **Go SDK** - - 新增了 Go SDK,详细信息请参考 [https://github.com/milvus-io/milvus-sdk-go](https://github.com/milvus-io/milvus-sdk-go)。 - -- **HNSW 索引的支持** - - 新增了对 HNSW 索引类型的支持。关于 HNSW 的详细介绍请参考[向量索引算法 HNSW 和 NSG 的比较](https://milvus.io/cn/blog/2020-01-16-hnsw-nsg-comparison.md)。[#853](https://github.com/milvus-io/milvus/issues/853) - -- **Jaccard/Hamming/Tanimoto 距离的支持** - - 新增了对 Jaccard、Hamming、Tanimoto 距离的支持。[#823](https://github.com/milvus-io/milvus/issues/823) - -- **Prometheus 中 Pushgateway 的支持** - - 新增了在 Prometheus 中 Pushgateway 的支持。Pushgateway 使生命周期短、批量的 metric 能够被 Prometheus 提取。[#813](https://github.com/milvus-io/milvus/issues/813) - -- **AVX 512 指令集的支持** - - 新增了对 AVX 512 指令集的支持。Milvus 理论上可支持所有包含 AVX 512 指令集的 CPU。[#1122](https://github.com/milvus-io/milvus/issues/1122) - -#### 变更说明 - -- **创建索引与搜索的接口更新** - - 从 Milvus 0.7.0 开始,所有客户端创建索引与搜索的接口中的部分参数使用 JSON 字符串进行传值。 - -- **Milvus 服务端配置文件更新** - - 从 Milvus 0.7.0 开始,Milvus 服务端配置文件(`server_config.yaml`)版本更新为 0.2。配置文件的参数也发生了变化。 - -- **术语更新** - - 从 0.7.0 开始,Milvus 的 Table(表) 正式改名为 Collection(集合)。 - -#### Bug 修复 - -- 解决了插入向量时使用自动生成的 ID 时可能产生重复 ID 的问题。[#1508](https://github.com/milvus-io/milvus/pull/1508) - ---- - -## v0.6.0 - -**发布时间**:2019-12-07 - -**版本兼容** - -| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | -| ----------- | --------------- | ------------- | -| 0.6.0 | 0.2.6 | 0.4.0 | - -#### 新增功能 - -- **仅支持 CPU 的 Milvus** - - Milvus v0.6.0 提供了仅支持 CPU 和支持 GPU 两个版本的 Milvus。同时支持在纯 CPU 和 GPU 环境下在 Docker 容器中编译 Milvus。[#192](https://github.com/milvus-io/milvus/pull/192) - -- **分区表** - - 新增了分区表功能以确保增量数据的高性能查询。Python,Java 和 C++ SDK 中增加了表分区相关接口,支持创建/删除分区表,向量插入指定分区表,以及指定分区表的查询等。[#245](https://github.com/milvus-io/milvus/pull/245) - -- **实验功能** - - Milvus 的实验功能仍在持续开发和更新中,可能包含未知的错误。这些功能主要用于测试和用户反馈收集。 - - - **Mishards** - - 推出 Milvus 集群分片中间件 Mishards 作为分布式部署方案之一。Mishards 内部处理请求转发、读写分离、水平扩展、动态扩容,为用户提供内存和算力可以无限扩容的 Milvus 集群实例。[#232](https://github.com/milvus-io/milvus/pull/232/files) - - - **新的索引类型** - - 支持新的索引类型如 `SPTAG-KDT`,`SPTAG-BKT`,`RNSG` 和 `IVFPQ`。Milvus 集成了微软的 SPTAG 算法库,进而支持 `SPTAG-KDT` 和 `SPTAG-BKT` 两种索引类型。`RNSG` 是 Milvus 在 NSG 基础上做了优化之后自研的一种索引方式。`IVFPQ` 是倒排索引基础上进一步利用笛卡儿积对每个倒排文件中的向量进行编码的索引方式。[SPTAG#438](https://github.com/milvus-io/milvus/pull/438) [RNSG#554](https://github.com/milvus-io/milvus/pull/554) [IVFPQ#324](https://github.com/milvus-io/milvus/pull/324) - -- **Milvus 性能测试报告** - - 提供了针对 `IVFFLAT`, `IVFSQ8` 和 `IVFSQ8H` 等索引类型的[性能测试报告](https://github.com/milvus-io/milvus/tree/master/docs)。 - -#### 主要改进 - -- **Milvus 优化过的 FAISS** - - 在原有 FAISS 的基础上, Milvus 做了一些深层代码的优化以获得更优的查询性能和支持更多类型的索引类型,比如 `IVFSQ8H`。现在,我们将这部分针对 FAISS 进行优化的代码开源了。[#585](https://github.com/milvus-io/milvus/pull/585) - -- **多张 GPU 创建索引** - - 支持使用多张 GPU 来创建索引以减少创建索引和整体查询的时间。你可以通过对 Milvus 配置文件中的参数 `build_index_resources` 来指定用于创建索引的 GPU 卡。[#414](https://github.com/milvus-io/milvus/pull/414) - -#### Bug 修复 - -- 进一步解决了随查询次数增加,内存占用持续增加的问题。[#335](https://github.com/milvus-io/milvus/pull/335) - ---- - -## v0.5.3 - -**发布时间**:2019-11-14 - -**版本兼容** - -| Milvus 版本 | pymilvus 版本 | Java SDK 版本 | -| ----------- | ------------- | ------------- | -| 0.5.3 | 0.2.5 | 0.3.0 | - -#### 主要改进 - -- Milvus server 到客户端的结果集数据传输性能增强了至少一倍,主要通过对 gRPC 的以下更新来实现: - - - 优化了 messages; - - 更改了生成代码的 API 接口; - - 删除了 compression。 - -- Python SDK - - - 不同的数组分开存储搜索结果的 ids 和 distances 以减少接口读取结果集的响应时间。 - - 新增了一种新的获取结果集里面某个目标向量的方式:`id = results.id_array[i][j], distance = results.distance_array[i][j]` - - 新增了一种数组遍历方式,在 `nq` 和 `top_k` 很大的情况下处理时间大大缩短。 - - ```python - >> for id_list, dis_list in zip(results.id_array, results.distance_array): - >> for id, dis in zip(id_list, dis_list): - >> print("id={}, distance={}".format(id, dis)) - ``` - -- Java SDK - - - 在连接到 Milvus server 时,增加了 keepalive 和 idleTimeout 等设置选项。 - - 用户现在可以通过 `getResultIdsList` 和 `getResultDistancesList` 分别获取搜索结果的 ids 和 distances,分别获取性能更优。也能通过 `getQueryResultsList` 获取同时包含 ids 和 distances 的对象 `QueryResult`。 - -- C++ SDK - - - 将其更改为动态库。 - - 新增了 README 文件。 - -- 提升了 `IVF_SQ8H` 的搜索性能。 - ---- - -## v0.5.2 - -**发布时间**:2019-11-07 - -#### Bug 修复 - -新增了文件名检查的系统锁,避免生成重复的数据文件名。解决了由于重复文件名而误删文件导致的搜索失败问题。 - -#### 主要改进 - -新增了日语版的 README 文件。(来自外部贡献者) - ---- - -## v0.5.1 - -**发布时间**:2019-11-04 - -#### 新增功能 - -- `IVF_SQ8` 和 `IVFFLAT` 索引类型支持纯 GPU 模式。 -- 新增配置参数 `gpu_search_threshold`,允许设置纯 GPU 模式的触发阈值。 - -#### 主要改进 - -- 解决了随着搜索次数增加,内存占用过大的问题。 -- 优化了搜索性能,解决了随着搜索次数增加,速度减慢的问题。 - ---- - -## v0.5.0 - -**发布时间**:2019-10-21 - -#### 新增功能 - -- 支持全新的 `IVF_SQ8H` 混合计算索引。 - -- 新增 Java SDK。 - -- 系统启动可以设置预加载向量数据,免去首次查询时的加载时间。 - ---- - -## v0.4.0 - -**发布时间**:2019-09-11 - -#### 新增功能 - -- Milvus 现在支持添加多个 GPU 协调分配资源。 - -- 支持新的索引类型 `IVF_SQ8`。 - -- 新增了“创建索引”,“用户自定义向量 id”,和“按日期范围删除向量”等 API 接口。 - -#### 主要改进 - -- 使用了 gRPC 作为远程通信系统。 - ---- - -## v0.3.1 - -**发布时间**:2019-08-08 - -#### 新增功能 - -- 增加了一种新的向量索引方式“IVFSQ",在保证精度的同时,大幅度缩减索引文件的大小。 -- 关于向量距离计算方法,在“欧几里得距离”的基础上,新增了“内积”。 -- 增加了多个参数以调整索引的建立,以及搜索的精度和速度。 - -#### 主要改进 - -- 当磁盘空间不足时,可通过参数“db_slave_path"添加多个二级数据存储文件路径。 -- 通过参数"parallel_reduce"启用多线程向量归并。 -- 通过参数”insert_buffer_size",你可以指定内存中的一部分作为数据插入的缓冲区。 -- 当缓存已满时,通过参数“cache_free_percent"来设置有多少数据将被保留。 -- 通过参数”insert_cache_immediately"来启用一边插一边查的功能。 -- 将原先以分数来评价搜索结果,改成对应的向量距离评价搜索结果。 - ---- - -## v0.3.0 - -**发布时间**:2019-06-30 - -#### 新增功能 - -- 增加基于 Celery 的水平扩展方案。 -- 增加了删除 Table 的功能。 -- 支持 ARM64 架构。 - -#### 主要改进 - -- 更新了 C++ 和 Python 的 SDK。 -- 增加了获得 Table 行数的接口。 -- 增加了查询匹配度作为返回结果。 -- 改善了查询的性能。 -- 新增了更多的监控指标。 - ---- - -## v0.2.1 - -**发布时间**:2019-06-14 - -#### 新增功能 - -增加了数据加载和计算的流水线。 - -#### 主要改进 - -支持基于时间范围的查询。 - ---- - -## v0.2.0 - -**发布时间**:2019-05-31 - -#### 新增功能 - -- 添加基于 C++ 和 Python 的 SDK。 -- 增加基于 Prometheus 的监控指标。 -- 增加基于 Inverted File Index 的向量索引。 -- 实现单节点的 Milvus。