milvus tagshttps://gitcode.net/milvus-io/milvus/-/tags2023-08-24T14:50:52+08:00https://gitcode.net/milvus-io/milvus/-/tags/v2.3.0v2.3.0<h2 data-sourcepos="1:1-1:9" dir="auto">
<a id="user-content-v230" class="anchor" href="#v230" aria-hidden="true"></a>v2.3.0</h2>
<p data-sourcepos="2:1-2:26" dir="auto">Release date: Aug 23, 2023</p>
<table data-sourcepos="4:1-6:97" dir="auto">
<thead>
<tr data-sourcepos="4:1-4:97">
<th data-sourcepos="4:2-4:17">Milvus version</th>
<th data-sourcepos="4:19-4:38">Python SDK version</th>
<th data-sourcepos="4:40-4:57">Java SDK version</th>
<th data-sourcepos="4:59-4:74">Go SDK version</th>
<th data-sourcepos="4:76-4:96">Node.js SDK version</th>
</tr>
</thead>
<tbody>
<tr data-sourcepos="6:1-6:97">
<td data-sourcepos="6:2-6:17">2.3.0</td>
<td data-sourcepos="6:19-6:38">2.3.0</td>
<td data-sourcepos="6:40-6:57">2.3.0</td>
<td data-sourcepos="6:59-6:74">2.3.0</td>
<td data-sourcepos="6:76-6:96">2.3.0</td>
</tr>
</tbody>
</table>
<p data-sourcepos="8:1-8:712" dir="auto">After months of meticulous refinement, we are pleased to announce the official release of Milvus 2.3.0. This highly anticipated release contains a wealth of exciting new features and enhancements, including GPU support, improved query architecture, enhanced load balancing capabilities, integrated message queues, Arm-compatible images, improved observability, and improved O&M tools. This represents a major leap forward in the maturity, reliability and usability of the Milvus 2.x series. We cordially invite community users to be among the first to explore them and request that any feedback or issues be submitted on GitHub. Let's work together to further refine and stabilize this exceptional 2.3.0 release.</p>
<h2 data-sourcepos="10:1-10:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>Breaking changes</h2>
<h3 data-sourcepos="12:1-12:34" dir="auto">
<a id="user-content-deprecated-time-travel-feature" class="anchor" href="#deprecated-time-travel-feature" aria-hidden="true"></a>Deprecated Time Travel Feature</h3>
<p data-sourcepos="14:1-14:148" dir="auto">Due to its inactivity and the challenges it poses to the architecture design of Milvus, the time-travel feature has been deprecated in this release.</p>
<h3 data-sourcepos="16:1-16:31" dir="auto">
<a id="user-content-discontinued-centos-support" class="anchor" href="#discontinued-centos-support" aria-hidden="true"></a>Discontinued CentOS Support</h3>
<p data-sourcepos="18:1-18:348" dir="auto">As CentOS 7 is about to reach its end of service (EOS) and official images based on CentOS 8 and CentOS 9 are not available, Milvus no longer supports CentOS. Instead, starting from this release, Milvus will provide images using the Amazonlinux distribution. It's worth noting that Ubuntu-based images remain the well-tested and recommended option.</p>
<h3 data-sourcepos="20:1-20:40" dir="auto">
<a id="user-content-removed-index-and-metrics-algorithms" class="anchor" href="#removed-index-and-metrics-algorithms" aria-hidden="true"></a>Removed Index and Metrics Algorithms</h3>
<p data-sourcepos="22:1-22:59" dir="auto">The following algorithms have been removed in this release:</p>
<ul data-sourcepos="24:1-27:0" dir="auto">
<li data-sourcepos="24:1-24:53">ANNOY and RHNSW for index-building of float vectors</li>
<li data-sourcepos="25:1-25:47">TANIMOTO for index-building of binary vectors</li>
<li data-sourcepos="26:1-27:0">Superstructure and Substructure metrics</li>
</ul>
<p data-sourcepos="28:1-28:84" dir="auto">These changes have been made to streamline and optimize the functionality of Milvus.</p>
<h2 data-sourcepos="30:1-30:24" dir="auto">
<a id="user-content-upgraded-architecture" class="anchor" href="#upgraded-architecture" aria-hidden="true"></a>Upgraded Architecture</h2>
<h3 data-sourcepos="32:1-32:15" dir="auto">
<a id="user-content-gpu-support" class="anchor" href="#gpu-support" aria-hidden="true"></a>GPU Support</h3>
<p data-sourcepos="34:1-34:642" dir="auto">Milvus had GPU support in its earlier versions (v1.x), but it was temporarily unavailable when Milvus transitioned to a distributed architecture in v2.x. Thanks to the contributions of NVIDIA engineers and their implementation of the RAFT algorithm for Milvus Knowhere, GPU support is once again available in Milvus. This latest update not only brings back GPU capabilities but also incorporates cutting-edge industry algorithms. In benchmark tests, Milvus with GPU support has demonstrated impressive performance improvements, achieving a three-fold increase in query per second (QPS) and even up to a ten-fold increase for certain datasets.</p>
<h3 data-sourcepos="36:1-36:17" dir="auto">
<a id="user-content-arm64-support" class="anchor" href="#arm64-support" aria-hidden="true"></a>Arm64 Support</h3>
<p data-sourcepos="38:1-38:386" dir="auto">With the growing popularity of Arm CPUs among cloud providers and developers, Milvus has recognized the importance of catering to the needs of both x86 and Arm architectures. To accommodate this demand, Milvus now offers images for both platforms. Additionally, the release of Arm images aims to provide MacOS users with a seamless experience when working with Milvus on their projects.</p>
<h3 data-sourcepos="40:1-40:24" dir="auto">
<a id="user-content-refactored-querynode" class="anchor" href="#refactored-querynode" aria-hidden="true"></a>Refactored QueryNode</h3>
<p data-sourcepos="42:1-42:612" dir="auto">QueryNode plays a vital role in data retrieval within Milvus, making its availability, performance, and extensibility essential. However, the legacy QueryNode had several reported issues, including complex status management, duplicate message queues, unclear code structure, and unintuitive error messages. To address these concerns, we have undertaken a significant refactoring effort. This involved transforming QueryNode into a stateless component and eliminating data-deletion-related message queues. These changes aim to enhance the overall functionality and usability of QueryNode within the Milvus system.</p>
<h3 data-sourcepos="44:1-44:35" dir="auto">
<a id="user-content-merged-indexcoord-and-datacoord" class="anchor" href="#merged-indexcoord-and-datacoord" aria-hidden="true"></a>Merged IndexCoord and DataCoord</h3>
<p data-sourcepos="46:1-46:407" dir="auto">We have merged IndexCoord and DataCoord into a single component, simplifying the deployment of Milvus. This consolidation reduces complexity and streamlines operations. Moving forward, subsequent releases will also witness the integration of certain functions of IndexNode and DataNode to align with this unified approach. These updates ensure a more efficient and seamless experience when utilizing Milvus.</p>
<h3 data-sourcepos="48:1-48:43" dir="auto">
<a id="user-content-nats-based-message-queue-experimental" class="anchor" href="#nats-based-message-queue-experimental" aria-hidden="true"></a>NATS-based Message Queue (Experimental)</h3>
<p data-sourcepos="50:1-50:563" dir="auto">The stability, extensibility, and performance of the message queue are of utmost importance to Milvus, given its log-based architecture. To expedite the development of Milvus 2.x, we have introduced support for Pulsar and Kafka as the core log brokers. However, these external log brokers have their limitations. They can exhibit instability when handling multiple topics simultaneously, complexity in managing duplicate messages, and resource management challenges when there are no messages to process. Additionally, their GO SDKs may have inactive communities.</p>
<p data-sourcepos="52:1-52:336" dir="auto">To address these issues, we have made the decision to develop our own log broker based on NATS and Bookeeper. This custom message queue is currently undergoing experimentation, and we welcome feedback and comments from the community. Our aim is to create a robust and efficient solution that addresses the unique requirements of Milvus.</p>
<h2 data-sourcepos="54:1-54:15" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>New features</h2>
<h3 data-sourcepos="56:1-56:10" dir="auto">
<a id="user-content-upsert" class="anchor" href="#upsert" aria-hidden="true"></a>Upsert</h3>
<p data-sourcepos="58:1-58:370" dir="auto">Users now can use the upsert API in Milvus for updating or inserting data. It is important to note that the upsert API combines search, delete, and insert operations, which may result in a degradation of performance. Therefore, it is recommended to use the insert APIs for specific and definitive insertions, while reserving the upsert APIs for more ambiguous scenarios.</p>
<h3 data-sourcepos="60:1-60:16" dir="auto">
<a id="user-content-range-search" class="anchor" href="#range-search" aria-hidden="true"></a>Range Search</h3>
<p data-sourcepos="62:1-62:123" dir="auto">Users now have the option to set a distance range using arguments to retrieve specific results within that range in Milvus.</p>
<pre class="code highlight js-syntax-highlight python" lang="python" v-pre="true"><code><span id="LC1" class="line" lang="python"><span class="o">//</span> <span class="n">add</span> <span class="n">radius</span> <span class="ow">and</span> <span class="n">range_filter</span> <span class="n">to</span> <span class="n">params</span> <span class="ow">in</span> <span class="n">search_params</span></span>
<span id="LC2" class="line" lang="python"><span class="n">search_params</span> <span class="o">=</span> <span class="p">{</span><span class="s">"params"</span><span class="p">:</span> <span class="p">{</span><span class="s">"nprobe"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span> <span class="s">"radius"</span><span class="p">:</span> <span class="mi">20</span><span class="p">,</span> <span class="s">"range_filter"</span> <span class="p">:</span> <span class="mi">10</span><span class="p">},</span> <span class="s">"metric_type"</span><span class="p">:</span> <span class="s">"L2"</span><span class="p">}</span></span>
<span id="LC3" class="line" lang="python"><span class="n">res</span> <span class="o">=</span> <span class="n">collection</span><span class="p">.</span><span class="n">search</span><span class="p">(</span></span>
<span id="LC4" class="line" lang="python"> <span class="n">vectors</span><span class="p">,</span> <span class="s">"float_vector"</span><span class="p">,</span> <span class="n">search_params</span><span class="p">,</span> <span class="n">topK</span><span class="p">,</span></span>
<span id="LC5" class="line" lang="python"> <span class="s">"int64 > 100"</span><span class="p">,</span> <span class="n">output_fields</span><span class="o">=</span><span class="p">[</span><span class="s">"int64"</span><span class="p">,</span> <span class="s">"float"</span><span class="p">]</span></span>
<span id="LC6" class="line" lang="python"><span class="p">)</span></span></code></pre>
<p data-sourcepos="73:1-73:422" dir="auto">In the above example, the returned vectors will have distances ranging from 10 to 20 regarding the query vector. It is important to note that the method of distance measurement varies depending on the chosen metric type. Therefore, it is recommended to familiarize yourself with each metric type before applying a range search. Additionally, please be aware that the maximum number of vectors returned is limited to 16384.</p>
<h3 data-sourcepos="75:1-75:9" dir="auto">
<a id="user-content-count" class="anchor" href="#count" aria-hidden="true"></a>Count</h3>
<p data-sourcepos="77:1-77:429" dir="auto">In previous releases, users would often use the num_entities API to retrieve the total number of entities in a collection. However, it is important to note that the num_entities API only applies to entities within sealed segments. Making frequent calls to the flush API can result in the creation of numerous small segments, which can negatively impact the stability of the system and the performance of data retrieval in Milvus.</p>
<p data-sourcepos="79:1-79:174" dir="auto">In this release, Milvus introduces the count statement as an alternative solution for users to obtain the number of entities in a collection without relying on the flush API.</p>
<p data-sourcepos="81:1-81:163" dir="auto">Please be aware that the count statement consumes system resources, and it is advisable to avoid calling it frequently to prevent unnecessary resource consumption.</p>
<h3 data-sourcepos="83:1-83:18" dir="auto">
<a id="user-content-cosine-metrics" class="anchor" href="#cosine-metrics" aria-hidden="true"></a>Cosine Metrics</h3>
<p data-sourcepos="85:1-85:313" dir="auto">The Cosine Metrics is widely regarded as the standard method for measuring the distance between vectors, particularly in Large Language Models (LLMs). With the release of Milvus 2.3.0, cosine metrics are now natively supported. As a result, users no longer need to quantize vectors for IP (Inner Product) metrics.</p>
<h3 data-sourcepos="87:1-87:33" dir="auto">
<a id="user-content-raw-vectors-in-search-returns" class="anchor" href="#raw-vectors-in-search-returns" aria-hidden="true"></a>Raw Vectors in Search Returns</h3>
<p data-sourcepos="89:1-89:711" dir="auto">Starting from Milvus 2.3.0, the capability to include raw vectors in search results is introduced for certain metrics. However, please note that including raw vectors in search results necessitates secondary searches, which can potentially impact performance. In scenarios where performance is critical, it is recommended to use indexes such as HNSW and IVF_FLAT, which inherently support the inclusion of vectors in their search results. It's important to mention that this feature currently does not apply to quantization-related indexes like IVF_PQ and IVF_SQ8. For more detailed information, please refer to <a href="https://github.com/zilliztech/knowhere/releases" rel="nofollow noreferrer noopener" target="_blank">https://github.com/zilliztech/knowhere/releases</a>.</p>
<h3 data-sourcepos="91:1-91:9" dir="auto">
<a id="user-content-scann" class="anchor" href="#scann" aria-hidden="true"></a>ScaNN</h3>
<p data-sourcepos="93:1-93:434" dir="auto">Milvus now includes support for FAISS' FastScan, which has demonstrated a 20% performance improvement compared to HNSW and a 7-fold increase compared to IVF-FLAT in multiple benchmark tests. ScaNN, an index-building algorithm similar to IVF-PQ, offers a faster index-building process. However, it's important to note that using ScaNN may result in a potential loss of precision and therefore requires refinement using the raw vectors.</p>
<p data-sourcepos="95:1-95:276" dir="auto">The table below presents performance comparison results obtained using <a href="https://github.com/zilliztech/VectorDBBench" rel="nofollow noreferrer noopener" target="_blank">VectorDBBench</a>. It evaluates the performance of ScaNN, HNSW, and IVF-FLAT in handling data retrieval from a 768-dimensional vector dataset sourced from Cohere.</p>
<table data-sourcepos="97:1-107:61" dir="auto">
<thead>
<tr data-sourcepos="97:1-97:61">
<th data-sourcepos="97:2-97:11">Index</th>
<th data-sourcepos="97:13-97:26">Case</th>
<th data-sourcepos="97:28-97:32">QPS</th>
<th data-sourcepos="97:34-97:51">Latency (P99) ms</th>
<th data-sourcepos="97:53-97:60">Recall</th>
</tr>
</thead>
<tbody>
<tr data-sourcepos="99:1-99:61">
<td data-sourcepos="99:2-99:11">ScaNN</td>
<td data-sourcepos="99:13-99:26">99% filtered</td>
<td data-sourcepos="99:28-99:32">626</td>
<td data-sourcepos="99:34-99:51">0.0069</td>
<td data-sourcepos="99:53-99:60">0.9532</td>
</tr>
<tr data-sourcepos="100:1-100:61">
<td data-sourcepos="100:2-100:11"></td>
<td data-sourcepos="100:13-100:26">1% filtered</td>
<td data-sourcepos="100:28-100:32">750</td>
<td data-sourcepos="100:34-100:51">0.0063</td>
<td data-sourcepos="100:53-100:60">0.9493</td>
</tr>
<tr data-sourcepos="101:1-101:61">
<td data-sourcepos="101:2-101:11"></td>
<td data-sourcepos="101:13-101:26">0% filtered</td>
<td data-sourcepos="101:28-101:32">883</td>
<td data-sourcepos="101:34-101:51">0.0051</td>
<td data-sourcepos="101:53-101:60">0.9491</td>
</tr>
<tr data-sourcepos="102:1-102:61">
<td data-sourcepos="102:2-102:11">IVF-FLAT</td>
<td data-sourcepos="102:13-102:26">99% filtered</td>
<td data-sourcepos="102:28-102:32">722</td>
<td data-sourcepos="102:34-102:51">0.0061</td>
<td data-sourcepos="102:53-102:60">0.9532</td>
</tr>
<tr data-sourcepos="103:1-103:61">
<td data-sourcepos="103:2-103:11"></td>
<td data-sourcepos="103:13-103:26">1% filtered</td>
<td data-sourcepos="103:28-103:32">122</td>
<td data-sourcepos="103:34-103:51">0.0161</td>
<td data-sourcepos="103:53-103:60">0.9493</td>
</tr>
<tr data-sourcepos="104:1-104:61">
<td data-sourcepos="104:2-104:11"></td>
<td data-sourcepos="104:13-104:26">0% filtered</td>
<td data-sourcepos="104:28-104:32">123</td>
<td data-sourcepos="104:34-104:51">0.0154</td>
<td data-sourcepos="104:53-104:60">0.9494</td>
</tr>
<tr data-sourcepos="105:1-105:61">
<td data-sourcepos="105:2-105:11">HNSW</td>
<td data-sourcepos="105:13-105:26">99% filtered</td>
<td data-sourcepos="105:28-105:32">773</td>
<td data-sourcepos="105:34-105:51">0.0066</td>
<td data-sourcepos="105:53-105:60">1.0</td>
</tr>
<tr data-sourcepos="106:1-106:61">
<td data-sourcepos="106:2-106:11"></td>
<td data-sourcepos="106:13-106:26">1% filtered</td>
<td data-sourcepos="106:28-106:32">355</td>
<td data-sourcepos="106:34-106:51">0.0081</td>
<td data-sourcepos="106:53-106:60">0.9839</td>
</tr>
<tr data-sourcepos="107:1-107:61">
<td data-sourcepos="107:2-107:11"></td>
<td data-sourcepos="107:13-107:26">0% filtered</td>
<td data-sourcepos="107:28-107:32">696</td>
<td data-sourcepos="107:34-107:51">0.0054</td>
<td data-sourcepos="107:53-107:60">0.9528</td>
</tr>
</tbody>
</table>
<h3 data-sourcepos="109:1-109:12" dir="auto">
<a id="user-content-iterator" class="anchor" href="#iterator" aria-hidden="true"></a>Iterator</h3>
<p data-sourcepos="111:1-111:260" dir="auto">PyMilvus now includes support for iterators, enabling users to retrieve more than 16,384 entities in a search or range search operation. The iterator functionality operates similarly to ElasticSearch's scroll API and the cursor concept in relational databases.</p>
<h3 data-sourcepos="113:1-113:17" dir="auto">
<a id="user-content-json_contains" class="anchor" href="#json_contains" aria-hidden="true"></a>JSON_CONTAINS</h3>
<p data-sourcepos="115:1-115:263" dir="auto">Starting from Milvus 2.3.0, users can utilize the JSON_CONTAINS expressions to retrieve entities whose JSON field values contain one or a specified set of elements. This feature enhances the flexibility and capability of filtering and querying data within Milvus.</p>
<h3 data-sourcepos="117:1-117:15" dir="auto">
<a id="user-content-cdc-support" class="anchor" href="#cdc-support" aria-hidden="true"></a>CDC support</h3>
<p data-sourcepos="119:1-119:333" dir="auto">Change Data Capture (CDC) is a widely used functionality in databases, typically employed in scenarios such as active/standby data synchronization, incremental data backup, and data migration. For more detailed information on CDC, please refer to <a href="https://github.com/zilliztech/milvus-cdc" rel="nofollow noreferrer noopener" target="_blank">https://github.com/zilliztech/milvus-cdc</a>.</p>
<h2 data-sourcepos="122:1-122:15" dir="auto">
<a id="user-content-enhancements" class="anchor" href="#enhancements" aria-hidden="true"></a>Enhancements</h2>
<h3 data-sourcepos="124:1-124:30" dir="auto">
<a id="user-content-mmap-for-capacity-increase" class="anchor" href="#mmap-for-capacity-increase" aria-hidden="true"></a>MMap for capacity increase</h3>
<p data-sourcepos="126:1-126:361" dir="auto">MMap is a Linux kernel feature that allows the mapping of disk space to memory. This feature enables loading data into the hard drive and mmap-ing it to memory, thereby increasing the single-machine data capacity with a marginal 20% performance degradation. Users who prioritize cost-efficiency are encouraged to test this enhancement and evaluate its benefits.</p>
<h3 data-sourcepos="128:1-128:46" dir="auto">
<a id="user-content-performance-improvement-for-data-filtering" class="anchor" href="#performance-improvement-for-data-filtering" aria-hidden="true"></a>Performance improvement for data filtering</h3>
<p data-sourcepos="130:1-130:458" dir="auto">In hybrid searches, Milvus performs scalar queries and vector searches sequentially. This approach often leads to a high number of entities being filtered out after the scalar queries, which can significantly degrade the performance of the built vector index. In Milvus 2.3.0, by optimizing the data filtering policies in HNSW, we have improved the scalar query performance and resolved this issue, ensuring better overall performance during hybrid searches.</p>
<h3 data-sourcepos="132:1-132:17" dir="auto">
<a id="user-content-growing-index" class="anchor" href="#growing-index" aria-hidden="true"></a>Growing index</h3>
<p data-sourcepos="134:1-134:525" dir="auto">Milvus distinguishes between indexed data and stream data, each treated differently. Indexed data benefits from the built index, which accelerates the search process. On the other hand, stream data relies on brute-force search, which can potentially lead to performance degradation. To address this issue, Milvus introduces the concept of a growing index. This growing index ensures consistent search performance for both indexed and stream data, mitigating any potential performance degradation caused by brute-force search.</p>
<h3 data-sourcepos="136:1-136:58" dir="auto">
<a id="user-content-increased-resource-usage-in-the-multi-core-environment" class="anchor" href="#increased-resource-usage-in-the-multi-core-environment" aria-hidden="true"></a>Increased resource usage in the multi-core environment</h3>
<p data-sourcepos="138:1-138:388" dir="auto">Approximate nearest search (ANN) is a computationally intensive task that heavily relies on CPU usage. In previous releases, the CPU usage in Milvus could remain below 70% even when multiple cores were available. However, in Milvus 2.3.0, this limitation has been overcome, and the system can now fully utilize all available CPU resources for improved performance during ANN computations.</p>
<h2 data-sourcepos="140:1-140:12" dir="auto">
<a id="user-content-stability" class="anchor" href="#stability" aria-hidden="true"></a>Stability</h2>
<h3 data-sourcepos="142:1-142:21" dir="auto">
<a id="user-content-new-load-balancer" class="anchor" href="#new-load-balancer" aria-hidden="true"></a>New load balancer</h3>
<p data-sourcepos="144:1-144:536" dir="auto">Milvus 2.1.0 introduced support for multiple replicas in memory to improve QPS. However, feedback from the community highlighted issues with immediate QPS improvement, longer system recovery time after node shutdown, workload imbalance among nodes, and low CPU utilization. To tackle these issues, we redesigned the load balancing algorithm with dynamic load adjustment based on real-time load information. This enhancement enables timely detection of node status changes and workload imbalances, resulting in efficient load management.</p>
<h2 data-sourcepos="146:1-146:14" dir="auto">
<a id="user-content-operability" class="anchor" href="#operability" aria-hidden="true"></a>Operability</h2>
<h3 data-sourcepos="148:1-148:25" dir="auto">
<a id="user-content-dynamic-configuration" class="anchor" href="#dynamic-configuration" aria-hidden="true"></a>Dynamic Configuration</h3>
<p data-sourcepos="150:1-150:498" dir="auto">Modifying configurations is a common operation for database maintenance and optimization. Starting from this version, Milvus supports dynamically modifying configuration parameters without the need to restart the cluster. There are two supported methods: modifying key-value pairs in etcd or directly modifying the <code>milvus.yaml</code> configuration file. It is important to note that not all configuration parameters can be modified dynamically. Please refer to the Milvus documentation for more details.</p>
<h3 data-sourcepos="152:1-152:19" dir="auto">
<a id="user-content-tracing-support" class="anchor" href="#tracing-support" aria-hidden="true"></a>Tracing support</h3>
<p data-sourcepos="154:1-154:331" dir="auto">Tracing is an important means of identifying bottleneck points in a system and is crucial for optimization. Starting from version 2.3.0, Milvus supports the Opentelemetry tracing protocol. Tracing collectors that support this protocol, such as Jaeger, can be used to observe Milvus's invocation path and analyze system performance.</p>
<h3 data-sourcepos="156:1-156:15" dir="auto">
<a id="user-content-error-codes" class="anchor" href="#error-codes" aria-hidden="true"></a>Error codes</h3>
<p data-sourcepos="158:1-158:253" dir="auto">Milvus has undergone a reorganization of its error codes according to the new design of the error code reporting system. As a result of this upgrade, error messages in Milvus will be more clear and concise, providing improved clarity in error reporting.</p>
<h2 data-sourcepos="160:1-160:8" dir="auto">
<a id="user-content-tools" class="anchor" href="#tools" aria-hidden="true"></a>Tools</h2>
<h3 data-sourcepos="162:1-162:23" dir="auto">
<a id="user-content-birdwatcher-upgrade" class="anchor" href="#birdwatcher-upgrade" aria-hidden="true"></a>Birdwatcher upgrade</h3>
<p data-sourcepos="164:1-164:79" dir="auto">Through months of development, Birdwatcher incorporates the following features:</p>
<ul data-sourcepos="166:1-171:0" dir="auto">
<li data-sourcepos="166:1-166:69">RESTful API for seamless integration with other diagnostic systems.</li>
<li data-sourcepos="167:1-167:73">PProf command support to facilitate integration with the go pprof tool.</li>
<li data-sourcepos="168:1-168:32">Storage analysis capabilities.</li>
<li data-sourcepos="169:1-169:39">Efficient log analysis functionality.</li>
<li data-sourcepos="170:1-171:0">Ability to view and edit Milvus configuration in etcd.</li>
</ul>
<h3 data-sourcepos="172:1-172:16" dir="auto">
<a id="user-content-attu-upgrade" class="anchor" href="#attu-upgrade" aria-hidden="true"></a>Attu upgrade</h3>
<p data-sourcepos="174:1-174:51" dir="auto">A newly designed GUI makes Attu more user-friendly.</p>
<p data-sourcepos="176:1-176:86" dir="auto"><a class="no-attachment-icon" href="https://github.com/milvus-io/milvus-docs/blob/v2.3.x/assets/attu-snapshot.png" target="_blank" rel="nofollow noreferrer noopener"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="Attu" class="lazy" data-src="https://github.com/milvus-io/milvus-docs/blob/v2.3.x/assets/attu-snapshot.png"></a></p>2023-08-24T14:50:52+08:00Bennuyunmei.li@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2.14v2.2.14<h2 data-sourcepos="1:1-1:9" dir="auto">
<a id="user-content-anchor-2214" class="anchor" href="#anchor-2214" aria-hidden="true"></a>2.2.14</h2>
<p data-sourcepos="3:1-3:26" dir="auto">Release date: Aug 23, 2023</p>
<table data-sourcepos="5:1-7:97" dir="auto">
<thead>
<tr data-sourcepos="5:1-5:97">
<th data-sourcepos="5:2-5:17">Milvus version</th>
<th data-sourcepos="5:19-5:38">Python SDK version</th>
<th data-sourcepos="5:40-5:57">Java SDK version</th>
<th data-sourcepos="5:59-5:74">Go SDK version</th>
<th data-sourcepos="5:76-5:96">Node.js SDK version</th>
</tr>
</thead>
<tbody>
<tr data-sourcepos="7:1-7:97">
<td data-sourcepos="7:2-7:17">2.2.14</td>
<td data-sourcepos="7:19-7:38">2.2.15</td>
<td data-sourcepos="7:40-7:57">2.2.11</td>
<td data-sourcepos="7:59-7:74">2.2.7</td>
<td data-sourcepos="7:76-7:96">2.2.24</td>
</tr>
</tbody>
</table>
<p data-sourcepos="9:1-9:224" dir="auto">Milvus 2.2.14 is a minor bug-fix release that mainly addresses cluster unavailability issues during rolling upgrades. With this new release, Milvus deployed with Kubernetes operator can be upgraded with almost zero downtime.</p>
<h3 data-sourcepos="11:1-11:13" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>Bug Fixes</h3>
<p data-sourcepos="13:1-13:43" dir="auto">This update addresses the following issues:</p>
<ul data-sourcepos="15:1-30:0" dir="auto">
<li data-sourcepos="15:1-20:187">Fixed the issues that caused rolling upgrades to take longer than expected:
<ul data-sourcepos="16:3-20:187">
<li data-sourcepos="16:3-16:189">Changed the default <code>gracefulStopTimeout</code> and now only displays a warning when there is a failure to refresh the policy cache. (<a href="https://github.com/milvus-io/milvus/pull/26443" rel="nofollow noreferrer noopener" target="_blank">#26443</a>)</li>
<li data-sourcepos="17:3-17:84">Refined gRPC retries. (<a href="https://github.com/milvus-io/milvus/pull/26464" rel="nofollow noreferrer noopener" target="_blank">#26464</a>)</li>
<li data-sourcepos="18:3-18:141">Checked and reset the gRPC client server ID if it mismatches with the session. (<a href="https://github.com/milvus-io/milvus/pull/26473" rel="nofollow noreferrer noopener" target="_blank">#26473</a>)</li>
<li data-sourcepos="19:3-19:163">Added a server ID validation interceptor. (<a href="https://github.com/milvus-io/milvus/pull/26395" rel="nofollow noreferrer noopener" target="_blank">#26395</a>) (<a href="https://github.com/milvus-io/milvus/pull/26424" rel="nofollow noreferrer noopener" target="_blank">#26424</a>)</li>
<li data-sourcepos="20:3-20:187">Improved the performance of the server ID interceptor validation. (<a href="https://github.com/milvus-io/milvus/pull/26468" rel="nofollow noreferrer noopener" target="_blank">#26468</a>) (<a href="https://github.com/milvus-io/milvus/pull/26496" rel="nofollow noreferrer noopener" target="_blank">#26496</a>)</li>
</ul>
</li>
<li data-sourcepos="21:1-21:199">Fixed the expression incompatibility issue between the parser and the executor. (<a href="https://github.com/milvus-io/milvus/pull/26493" rel="nofollow noreferrer noopener" target="_blank">#26493</a>) (<a href="https://github.com/milvus-io/milvus/pull/26495" rel="nofollow noreferrer noopener" target="_blank">#26495</a>)</li>
<li data-sourcepos="22:1-22:131">Fixed failures in serializing string index when its size exceeds 2 GB. (<a href="https://github.com/milvus-io/milvus/pull/26393" rel="nofollow noreferrer noopener" target="_blank">#26393</a>)</li>
<li data-sourcepos="23:1-23:148">Fixed issues where enormous duplicate collections were being re-dropped during restore. (<a href="https://github.com/milvus-io/milvus/pull/26030" rel="nofollow noreferrer noopener" target="_blank">#26030</a>)</li>
<li data-sourcepos="24:1-24:131">Fixed the issue where the leader view returns a loading shard cluster. (<a href="https://github.com/milvus-io/milvus/pull/26263" rel="nofollow noreferrer noopener" target="_blank">#26263</a>)</li>
<li data-sourcepos="25:1-25:124">Fixed the Liveness check block in SessionUtil to watch forever. (<a href="https://github.com/milvus-io/milvus/pull/26250" rel="nofollow noreferrer noopener" target="_blank">#26250</a>)</li>
<li data-sourcepos="26:1-26:164">Fixed issues related to logical expressions. (<a href="https://github.com/milvus-io/milvus/pull/26513" rel="nofollow noreferrer noopener" target="_blank">#26513</a>) (<a href="https://github.com/milvus-io/milvus/pull/26515" rel="nofollow noreferrer noopener" target="_blank">#26515</a>)</li>
<li data-sourcepos="27:1-27:183">Fixed issues related to continuous restart of DataNode/DataCoord. <a href="https://github.com/milvus-io/milvus/pull/26470" rel="nofollow noreferrer noopener" target="_blank">#26470</a> (<a href="https://github.com/milvus-io/milvus/pull/26506" rel="nofollow noreferrer noopener" target="_blank">#26506</a>)</li>
<li data-sourcepos="28:1-28:119">Fixed issues related to being stuck in channel checkpoint. (<a href="https://github.com/milvus-io/milvus/pull/26544" rel="nofollow noreferrer noopener" target="_blank">#26544</a>)</li>
<li data-sourcepos="29:1-30:0">Fixed an issue so that Milvus considers the balance task with a released source segment as stale. (<a href="https://github.com/milvus-io/milvus/pull/26498" rel="nofollow noreferrer noopener" target="_blank">#26498</a>)</li>
</ul>
<h3 data-sourcepos="31:1-31:15" dir="auto">
<a id="user-content-enhancement" class="anchor" href="#enhancement" aria-hidden="true"></a>Enhancement</h3>
<ul data-sourcepos="33:1-39:102" dir="auto">
<li data-sourcepos="33:1-33:113">Refined error messages for fields that do not exist (<a href="https://github.com/milvus-io/milvus/pull/26331" rel="nofollow noreferrer noopener" target="_blank">#26331</a>).</li>
<li data-sourcepos="34:1-34:169">Fixed unclear error messages of the proto parser (<a href="https://github.com/milvus-io/milvus/pull/26365" rel="nofollow noreferrer noopener" target="_blank">#26365</a>) (<a href="https://github.com/milvus-io/milvus/pull/26366" rel="nofollow noreferrer noopener" target="_blank">#26366</a>).</li>
<li data-sourcepos="35:1-35:147">Prohibited setting a partition name for a collection that already has a partition key (<a href="https://github.com/milvus-io/milvus/pull/26128" rel="nofollow noreferrer noopener" target="_blank">#26128</a>).</li>
<li data-sourcepos="36:1-36:91">Added disk metric information (<a href="https://github.com/milvus-io/milvus/pull/25678" rel="nofollow noreferrer noopener" target="_blank">#25678</a>).</li>
<li data-sourcepos="37:1-37:132">Fixed the CollectionNotExists error during vector search and retrieval (<a href="https://github.com/milvus-io/milvus/pull/26532" rel="nofollow noreferrer noopener" target="_blank">#26532</a>).</li>
<li data-sourcepos="38:1-38:158">Added a default <code>MALLOC_CONF</code> environment variable to release memory after dropping a collection (<a href="https://github.com/milvus-io/milvus/pull/26353" rel="nofollow noreferrer noopener" target="_blank">#26353</a>).</li>
<li data-sourcepos="39:1-39:102">Made pulsar request timeout configurable (<a href="https://github.com/milvus-io/milvus/pull/26526" rel="nofollow noreferrer noopener" target="_blank">#26526</a>).</li>
</ul>2023-08-24T14:51:08+08:00Bennuyunmei.li@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230818v2.2-testing-20230818<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230818-<a href="/milvus-io/milvus/-/commit/74fb244bd710e7ee0c1ac98e1c9afdb4082df949" data-original="74fb244b" data-link="false" data-link-reference="false" data-project="123" data-commit="74fb244bd710e7ee0c1ac98e1c9afdb4082df949" data-reference-type="commit" data-container="body" data-placement="top" title="Upgrade mockery (#26461)" class="gfm gfm-commit has-tooltip">74fb244b</a></p>2023-08-24T14:51:23+08:00yah01yah2er0ne@outlook.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230817v2.2-testing-20230817<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230817-<a href="/milvus-io/milvus/-/commit/50a77ef1f70e572fe9a74cf836e9777ca824d3a5" data-original="50a77ef1" data-link="false" data-link-reference="false" data-project="123" data-commit="50a77ef1f70e572fe9a74cf836e9777ca824d3a5" data-reference-type="commit" data-container="body" data-placement="top" title="Fix serialize string index failed when greater than 2G (#26392)" class="gfm gfm-commit has-tooltip">50a77ef1</a></p>2023-08-24T14:51:23+08:00xige-16xi.ge@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230814v2.2-testing-20230814<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230814-<a href="/milvus-io/milvus/-/commit/7d61355ab0fbb4ab4bd1dbd960495963f89e1063" data-original="7d61355a" data-link="false" data-link-reference="false" data-project="123" data-commit="7d61355ab0fbb4ab4bd1dbd960495963f89e1063" data-reference-type="commit" data-container="body" data-placement="top" title="Refactor log for Query (#26310)" class="gfm gfm-commit has-tooltip">7d61355a</a></p>2023-08-24T14:51:23+08:00Enwei Jiaoenwei.jiao@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230810v2.2-testing-20230810<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230810-<a href="/milvus-io/milvus/-/commit/0f9aa5fbec007366dc445c96e61824ba04203cb4" data-original="0f9aa5fb" data-link="false" data-link-reference="false" data-project="123" data-commit="0f9aa5fbec007366dc445c96e61824ba04203cb4" data-reference-type="commit" data-container="body" data-placement="top" title="Update knowhere commit update action (#26272)" class="gfm gfm-commit has-tooltip">0f9aa5fb</a></p>2023-08-24T14:51:23+08:00Bennuyunmei.li@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2.13v2.2.13<h2 data-sourcepos="1:1-1:9" dir="auto">
<a id="user-content-anchor-2213" class="anchor" href="#anchor-2213" aria-hidden="true"></a>2.2.13</h2>
<p data-sourcepos="3:1-3:25" dir="auto">Release date: Aug 9, 2023</p>
<table data-sourcepos="5:1-7:97" dir="auto">
<thead>
<tr data-sourcepos="5:1-5:97">
<th data-sourcepos="5:2-5:17">Milvus version</th>
<th data-sourcepos="5:19-5:38">Python SDK version</th>
<th data-sourcepos="5:40-5:57">Java SDK version</th>
<th data-sourcepos="5:59-5:74">Go SDK version</th>
<th data-sourcepos="5:76-5:96">Node.js SDK version</th>
</tr>
</thead>
<tbody>
<tr data-sourcepos="7:1-7:97">
<td data-sourcepos="7:2-7:17">2.2.13</td>
<td data-sourcepos="7:19-7:38">2.2.15</td>
<td data-sourcepos="7:40-7:57">2.2.11</td>
<td data-sourcepos="7:59-7:74">2.2.7</td>
<td data-sourcepos="7:76-7:96">2.2.23</td>
</tr>
</tbody>
</table>
<p data-sourcepos="9:1-9:280" dir="auto">Milvus 2.2.13 is a minor bugfix release that fixes several performance degrading issues, including excessive disk usage when TTL is enabled, and the failure to import dynamic fields via bulk load. In addition, Milvus 2.2.13 also extends object storage support beyond S3 and MinIO.</p>
<h3 data-sourcepos="11:1-11:12" dir="auto">
<a id="user-content-bugfixes" class="anchor" href="#bugfixes" aria-hidden="true"></a>Bugfixes</h3>
<ul data-sourcepos="13:1-22:0" dir="auto">
<li data-sourcepos="13:1-13:116">Resolved a crash bug in bulk-insert for dynamic fields. (<a href="https://github.com/milvus-io/milvus/pull/25980" rel="nofollow noreferrer noopener" target="_blank">#25980</a>)</li>
<li data-sourcepos="14:1-14:165">Reduced excessive MinIO storage usage by saving metadata (timestampFrom, timestampTo) during compaction. (<a href="https://github.com/milvus-io/milvus/pull/26210" rel="nofollow noreferrer noopener" target="_blank">#26210</a>)</li>
<li data-sourcepos="15:1-15:165">Corrected lock usage in DataCoord compaction. (<a href="https://github.com/milvus-io/milvus/pull/26032" rel="nofollow noreferrer noopener" target="_blank">#26032</a>) (<a href="https://github.com/milvus-io/milvus/pull/26042" rel="nofollow noreferrer noopener" target="_blank">#26042</a>)</li>
<li data-sourcepos="16:1-16:116">Incorporated session util fixes through cherry-picking. (<a href="https://github.com/milvus-io/milvus/pull/26101" rel="nofollow noreferrer noopener" target="_blank">#26101</a>)</li>
<li data-sourcepos="17:1-17:176">Removed user-role mapping information along with a user. (<a href="https://github.com/milvus-io/milvus/pull/25988" rel="nofollow noreferrer noopener" target="_blank">#25988</a>) (<a href="https://github.com/milvus-io/milvus/pull/26048" rel="nofollow noreferrer noopener" target="_blank">#26048</a>)</li>
<li data-sourcepos="18:1-18:159">Improved the RBAC cache update process. (<a href="https://github.com/milvus-io/milvus/pull/26150" rel="nofollow noreferrer noopener" target="_blank">#26150</a>) (<a href="https://github.com/milvus-io/milvus/pull/26151" rel="nofollow noreferrer noopener" target="_blank">#26151</a>)</li>
<li data-sourcepos="19:1-19:110">Fixed MsgPack from mq msgstream ts not being set. (<a href="https://github.com/milvus-io/milvus/pull/25924" rel="nofollow noreferrer noopener" target="_blank">#25924</a>)</li>
<li data-sourcepos="20:1-20:108">Fixed the issue of <code>sc.distribution</code> being nil. (<a href="https://github.com/milvus-io/milvus/pull/25904" rel="nofollow noreferrer noopener" target="_blank">#25904</a>)</li>
<li data-sourcepos="21:1-22:0">Fixed incorrect results while retrieving data of int8. (<a href="https://github.com/milvus-io/milvus/pull/26171" rel="nofollow noreferrer noopener" target="_blank">#26171</a>)</li>
</ul>
<h3 data-sourcepos="23:1-23:16" dir="auto">
<a id="user-content-enhancements" class="anchor" href="#enhancements" aria-hidden="true"></a>Enhancements</h3>
<ul data-sourcepos="25:1-31:0" dir="auto">
<li data-sourcepos="25:1-25:143">Upgraded MinIO-go and add region and virtual host config for segcore chunk manager (<a href="https://github.com/milvus-io/milvus/pull/25811" rel="nofollow noreferrer noopener" target="_blank">#25811</a>)</li>
<li data-sourcepos="26:1-26:148">Reduced log volumes of DC&DN (<a href="https://github.com/milvus-io/milvus/pull/26060" rel="nofollow noreferrer noopener" target="_blank">#26060</a>) (<a href="https://github.com/milvus-io/milvus/pull/26094" rel="nofollow noreferrer noopener" target="_blank">#26094</a>)</li>
<li data-sourcepos="27:1-27:108">Added a new configuration item: proxy.http.port (<a href="https://github.com/milvus-io/milvus/pull/25923" rel="nofollow noreferrer noopener" target="_blank">#25923</a>)</li>
<li data-sourcepos="28:1-28:108">Forced use DNS for AliyunOSS because of sdk bug (<a href="https://github.com/milvus-io/milvus/pull/26176" rel="nofollow noreferrer noopener" target="_blank">#26176</a>)</li>
<li data-sourcepos="29:1-29:100">Fixed indexnode and datanode num metric (<a href="https://github.com/milvus-io/milvus/pull/25920" rel="nofollow noreferrer noopener" target="_blank">#25920</a>)</li>
<li data-sourcepos="30:1-31:0">Disabled deny writing when the growing segment size exceeds the watermark (<a href="https://github.com/milvus-io/milvus/pull/26163" rel="nofollow noreferrer noopener" target="_blank">#26163</a>) (<a href="https://github.com/milvus-io/milvus/pull/26208" rel="nofollow noreferrer noopener" target="_blank">#26208</a>)</li>
</ul>
<h3 data-sourcepos="32:1-32:30" dir="auto">
<a id="user-content-performance-related-issues" class="anchor" href="#performance-related-issues" aria-hidden="true"></a>Performance-related issues</h3>
<ul data-sourcepos="34:1-34:181" dir="auto">
<li data-sourcepos="34:1-34:181">Fixed the performance degradation in version 2.2.12 by adding back the segment CGO pool and separating sq/dm operations (<a href="https://github.com/milvus-io/milvus/pull/26035" rel="nofollow noreferrer noopener" target="_blank">#26035</a>).</li>
</ul>2023-08-24T14:51:23+08:00Bennuyunmei.li@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/pkg%2Fv0.0.1pkg/v0.0.1Jiquan Longjiquan.long@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230807v2.2-testing-20230807<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230807-<a href="/milvus-io/milvus/-/commit/28cea5e7637307bc6601dd32b9d04b4a7803a35e" data-original="28cea5e7" data-link="false" data-link-reference="false" data-project="123" data-commit="28cea5e7637307bc6601dd32b9d04b4a7803a35e" data-reference-type="commit" data-container="body" data-placement="top" title="Fix func typo (#26167)" class="gfm gfm-commit has-tooltip">28cea5e7</a></p>2023-08-24T14:51:38+08:00smellthemoon64083300+smellthemoon@users.noreply.github.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230803v2.2-testing-20230803<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230803-<a href="/milvus-io/milvus/-/commit/f97d5a7d08d436e32a88b00baf12bb6d00bef4c3" data-original="f97d5a7d" data-link="false" data-link-reference="false" data-project="123" data-commit="f97d5a7d08d436e32a88b00baf12bb6d00bef4c3" data-reference-type="commit" data-container="body" data-placement="top" title="Fix compile failed with llvm16 (#26112)" class="gfm gfm-commit has-tooltip">f97d5a7d</a></p>2023-08-24T14:51:38+08:00Enwei Jiaoenwei.jiao@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230731v2.2-testing-20230731<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230731-<a href="/milvus-io/milvus/-/commit/f615cc540421d86e60a776816ad5771cd4ea33dc" data-original="f615cc54" data-link="false" data-link-reference="false" data-project="123" data-commit="f615cc540421d86e60a776816ad5771cd4ea33dc" data-reference-type="commit" data-container="body" data-placement="top" title="[skip e2e]Update standalone config for chaos test (#26037)" class="gfm gfm-commit has-tooltip">f615cc54</a></p>2023-08-24T14:51:38+08:00zhuwenxingwenxing.zhu@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230727v2.2-testing-20230727<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230727-<a href="/milvus-io/milvus/-/commit/833674c1cbd13d0ebf79d49f22cf3f23532216ca" data-original="833674c1" data-link="false" data-link-reference="false" data-project="123" data-commit="833674c1cbd13d0ebf79d49f22cf3f23532216ca" data-reference-type="commit" data-container="body" data-placement="top" title="add glog configurable function and redirect aws log to segcore log (#25664)" class="gfm gfm-commit has-tooltip">833674c1</a></p>2023-08-24T14:51:38+08:00zhagnlu1542303831@qq.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230724v2.2-testing-20230724<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230724-<a href="/milvus-io/milvus/-/commit/1748c54fd7a293b228e498cab0a4bc394c161ecf" data-original="1748c54f" data-link="false" data-link-reference="false" data-project="123" data-commit="1748c54fd7a293b228e498cab0a4bc394c161ecf" data-reference-type="commit" data-container="body" data-placement="top" title="skip load/release segment when more than one delegator exist (#25718)" class="gfm gfm-commit has-tooltip">1748c54f</a></p>2023-08-24T14:51:54+08:00wei liuwei.liu@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2.12v2.2.12<h2 data-sourcepos="1:1-1:9" dir="auto">
<a id="user-content-anchor-2212" class="anchor" href="#anchor-2212" aria-hidden="true"></a>2.2.12</h2>
<p data-sourcepos="3:1-3:27" dir="auto">Release date: 24 July, 2023</p>
<table data-sourcepos="5:1-7:97" dir="auto">
<thead>
<tr data-sourcepos="5:1-5:97">
<th data-sourcepos="5:2-5:17">Milvus version</th>
<th data-sourcepos="5:19-5:38">Python SDK version</th>
<th data-sourcepos="5:40-5:57">Java SDK version</th>
<th data-sourcepos="5:59-5:74">Go SDK version</th>
<th data-sourcepos="5:76-5:96">Node.js SDK version</th>
</tr>
</thead>
<tbody>
<tr data-sourcepos="7:1-7:97">
<td data-sourcepos="7:2-7:17">2.2.12</td>
<td data-sourcepos="7:19-7:38">2.2.14</td>
<td data-sourcepos="7:40-7:57">2.2.9</td>
<td data-sourcepos="7:59-7:74">2.2.7</td>
<td data-sourcepos="7:76-7:96">2.2.20</td>
</tr>
</tbody>
</table>
<p data-sourcepos="9:1-9:153" dir="auto">This minor release is the last one in Milvus 2.2.x that comes with new features. Future minor releases of Milvus 2.2.x will focus on essential bug fixes.</p>
<p data-sourcepos="11:1-11:37" dir="auto">New features in this release include:</p>
<ul data-sourcepos="13:1-19:0" dir="auto">
<li data-sourcepos="13:1-16:0">
<p data-sourcepos="13:3-13:63">A new set of RESTful APIs that simplify user-side operations.</p>
<p data-sourcepos="15:5-15:167">Note that you must set a token even if the authentication is disabled in Milvus for now. For details, see <a href="https://github.com/milvus-io/milvus/pull/25873" rel="nofollow noreferrer noopener" target="_blank">#25873</a>.</p>
</li>
<li data-sourcepos="17:1-17:272">
<p data-sourcepos="17:3-17:272">Improved ability to retrieve vectors during ANN searches, along with better vector-retrieving performance during queries. Users can now set the vector field as one of the output fields in ANN searches and queries against HNSW-, DiskANN-, or IVF-FLAT-indexed collections.</p>
</li>
<li data-sourcepos="18:1-19:0">
<p data-sourcepos="18:3-18:232">Better search performance with reduced overhead, even when dealing with large top-K values, improved write performance in partition-key-enabled or multi-partition scenarios, and enhanced CPU usage in scenarios with large machines.</p>
</li>
</ul>
<p data-sourcepos="20:1-20:210" dir="auto">Additionally, a large number of issues have been fixed, including excessive disk usage, stuck compaction, infrequent data deletions, object storage access failures using AWS S3 SDK, and bulk-insertion failures.</p>
<h3 data-sourcepos="22:1-22:16" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>New Features</h3>
<ul data-sourcepos="24:1-29:0" dir="auto">
<li data-sourcepos="24:1-24:142">Added support for a high-level RESTful API that listens on the same port as gRPC (<a href="https://github.com/milvus-io/milvus/pull/24761" rel="nofollow noreferrer noopener" target="_blank">#24761</a>).</li>
<li data-sourcepos="25:1-25:161">Added support for getting vectors by IDs (<a href="https://github.com/milvus-io/milvus/pull/23450" rel="nofollow noreferrer noopener" target="_blank">#23450</a>) (<a href="https://github.com/milvus-io/milvus/pull/25090" rel="nofollow noreferrer noopener" target="_blank">#25090</a>).</li>
<li data-sourcepos="26:1-26:95">Added support for <code>json_contains</code> (<a href="https://github.com/milvus-io/milvus/pull/25724" rel="nofollow noreferrer noopener" target="_blank">#25724</a>).</li>
<li data-sourcepos="27:1-27:107">Enabled bulk-insert to support partition keys (<a href="https://github.com/milvus-io/milvus/pull/24995" rel="nofollow noreferrer noopener" target="_blank">#24995</a>).</li>
<li data-sourcepos="28:1-29:0">Enabled the chunk manager to use GCS and OSS with an access key (<a href="https://github.com/milvus-io/milvus/pull/25241" rel="nofollow noreferrer noopener" target="_blank">#25241</a>).</li>
</ul>
<h3 data-sourcepos="30:1-30:12" dir="auto">
<a id="user-content-bugfixes" class="anchor" href="#bugfixes" aria-hidden="true"></a>Bugfixes</h3>
<ul data-sourcepos="32:1-64:0" dir="auto">
<li data-sourcepos="32:1-34:133">Fixed issue where Milvus was using too much extra MinIO/local disk space
<ul data-sourcepos="33:5-34:133">
<li data-sourcepos="33:5-33:122">Added constraint for compaction based on indexed segments (<a href="https://github.com/milvus-io/milvus/pull/25470" rel="nofollow noreferrer noopener" target="_blank">#25470</a>)</li>
<li data-sourcepos="34:5-34:133">(FastCompact) Added function to check output fields and modify cases (<a href="https://github.com/milvus-io/milvus/pull/25510" rel="nofollow noreferrer noopener" target="_blank">#25510</a>)</li>
</ul>
</li>
<li data-sourcepos="35:1-39:114">Fixed Delete related issues
<ul data-sourcepos="36:5-39:114">
<li data-sourcepos="36:5-36:101">Fixed delete messages being unsorted (<a href="https://github.com/milvus-io/milvus/pull/25757" rel="nofollow noreferrer noopener" target="_blank">#25757</a>)</li>
<li data-sourcepos="37:5-37:103">Fixed deleted records being re-applied (<a href="https://github.com/milvus-io/milvus/pull/24858" rel="nofollow noreferrer noopener" target="_blank">#24858</a>)</li>
<li data-sourcepos="38:5-38:121">Fixed duplicate deletions making deleted records visible (<a href="https://github.com/milvus-io/milvus/pull/25369" rel="nofollow noreferrer noopener" target="_blank">#25369</a>)</li>
<li data-sourcepos="39:5-39:114">Fixed deleted data being returned by search/query (<a href="https://github.com/milvus-io/milvus/pull/25513" rel="nofollow noreferrer noopener" target="_blank">#25513</a>)</li>
</ul>
</li>
<li data-sourcepos="40:1-44:93">Fixed Blob storage-related issues
<ul data-sourcepos="41:5-44:93">
<li data-sourcepos="41:5-41:172">Added error code to Minio chunkmanager exception (<a href="https://github.com/milvus-io/milvus/pull/25153" rel="nofollow noreferrer noopener" target="_blank">#25153</a>) (<a href="https://github.com/milvus-io/milvus/pull/25181" rel="nofollow noreferrer noopener" target="_blank">#25181</a>)</li>
<li data-sourcepos="42:5-42:129">Fixed program crash caused by incorrect use of noexcept modifier (<a href="https://github.com/milvus-io/milvus/pull/25194" rel="nofollow noreferrer noopener" target="_blank">#25194</a>)</li>
<li data-sourcepos="43:5-43:231">Fixed GetObject returning null value bug in MacOS (<a href="https://github.com/milvus-io/milvus/pull/24959" rel="nofollow noreferrer noopener" target="_blank">#24959</a>)(<a href="https://github.com/milvus-io/milvus/pull/25002" rel="nofollow noreferrer noopener" target="_blank">#25002</a>) (<a href="https://github.com/milvus-io/milvus/pull/25107" rel="nofollow noreferrer noopener" target="_blank">#25107</a>)</li>
<li data-sourcepos="44:5-44:93">Reverted aws-sdk-cpp version (<a href="https://github.com/milvus-io/milvus/pull/25305" rel="nofollow noreferrer noopener" target="_blank">#25305</a>)</li>
</ul>
</li>
<li data-sourcepos="45:1-45:161">Fixed etcd failure causing Milvus to crash (<a href="https://github.com/milvus-io/milvus/pull/25463" rel="nofollow noreferrer noopener" target="_blank">#25463</a>)(<a href="https://github.com/milvus-io/milvus/pull/25111" rel="nofollow noreferrer noopener" target="_blank">#25111</a>)</li>
<li data-sourcepos="46:1-48:112">Fixed Bulk-load issues
<ul data-sourcepos="47:5-48:112">
<li data-sourcepos="47:5-47:162">Enabled segment checks if a segment exists before conducting checks against the import task state (<a href="https://github.com/milvus-io/milvus/pull/25809" rel="nofollow noreferrer noopener" target="_blank">#25809</a>)</li>
<li data-sourcepos="48:5-48:112">Added a timeout config for bulk-insert requests (<a href="https://github.com/milvus-io/milvus/pull/25758" rel="nofollow noreferrer noopener" target="_blank">#25758</a>)</li>
</ul>
</li>
<li data-sourcepos="49:1-49:174">Fixed indexnode memory leakage when update index fails (<a href="https://github.com/milvus-io/milvus/pull/25460" rel="nofollow noreferrer noopener" target="_blank">#25460</a>) (<a href="https://github.com/milvus-io/milvus/pull/25478" rel="nofollow noreferrer noopener" target="_blank">#25478</a>)</li>
<li data-sourcepos="50:1-50:121">Fixed Kafka panic when sending a message to a closed channel (<a href="https://github.com/milvus-io/milvus/pull/25116" rel="nofollow noreferrer noopener" target="_blank">#25116</a>)</li>
<li data-sourcepos="51:1-51:122">Fixed insert returning success but not storing dynamic fields (<a href="https://github.com/milvus-io/milvus/pull/25494" rel="nofollow noreferrer noopener" target="_blank">#25494</a>)</li>
<li data-sourcepos="52:1-52:203">Refined sync_cp_lag_too_behind_policy to avoid submitting sync tasks too frequently (<a href="https://github.com/milvus-io/milvus/pull/25441" rel="nofollow noreferrer noopener" target="_blank">#25441</a>) (<a href="https://github.com/milvus-io/milvus/pull/25442" rel="nofollow noreferrer noopener" target="_blank">#25442</a>)</li>
<li data-sourcepos="53:1-53:121">Fixed bug of missing JSON type when sorting retrieve results (<a href="https://github.com/milvus-io/milvus/pull/25412" rel="nofollow noreferrer noopener" target="_blank">#25412</a>)</li>
<li data-sourcepos="54:1-54:177">Fixed possible deadlock when syncing segments to datanode (<a href="https://github.com/milvus-io/milvus/pull/25196" rel="nofollow noreferrer noopener" target="_blank">#25196</a>) (<a href="https://github.com/milvus-io/milvus/pull/25211" rel="nofollow noreferrer noopener" target="_blank">#25211</a>)</li>
<li data-sourcepos="55:1-55:97">Added write lock for <code>lru_cache.Get</code> (<a href="https://github.com/milvus-io/milvus/pull/25010" rel="nofollow noreferrer noopener" target="_blank">#25010</a>)</li>
<li data-sourcepos="56:1-56:160">Fixed expression on integer overflow case (<a href="https://github.com/milvus-io/milvus/pull/25320" rel="nofollow noreferrer noopener" target="_blank">#25320</a>, <a href="https://github.com/milvus-io/milvus/pull/25372" rel="nofollow noreferrer noopener" target="_blank">#25372</a>)</li>
<li data-sourcepos="57:1-57:107">Fixed data race in waitgroup for graceful stop (<a href="https://github.com/milvus-io/milvus/pull/25224" rel="nofollow noreferrer noopener" target="_blank">#25224</a>)</li>
<li data-sourcepos="58:1-58:113">Fixed drop index with large txn exceeding etcd limit (<a href="https://github.com/milvus-io/milvus/pull/25623" rel="nofollow noreferrer noopener" target="_blank">#25623</a>)</li>
<li data-sourcepos="59:1-59:147">Fixed incorrect IP distance (<a href="https://github.com/milvus-io/milvus/pull/25527" rel="nofollow noreferrer noopener" target="_blank">#25527</a>) (<a href="https://github.com/milvus-io/milvus/pull/25528" rel="nofollow noreferrer noopener" target="_blank">#25528</a>)</li>
<li data-sourcepos="60:1-60:170">Prevented <code>exclusive consumer</code> exception in Pulsar (<a href="https://github.com/milvus-io/milvus/pull/25376" rel="nofollow noreferrer noopener" target="_blank">#25376</a>) (<a href="https://github.com/milvus-io/milvus/pull/25378" rel="nofollow noreferrer noopener" target="_blank">#25378</a>)</li>
<li data-sourcepos="61:1-61:123">Made query set guarantee ts based on default consistency level (<a href="https://github.com/milvus-io/milvus/pull/25579" rel="nofollow noreferrer noopener" target="_blank">#25579</a>)</li>
<li data-sourcepos="62:1-62:110">Fixed rootcoord restoration missing gcConfirmStep (<a href="https://github.com/milvus-io/milvus/pull/25280" rel="nofollow noreferrer noopener" target="_blank">#25280</a>)</li>
<li data-sourcepos="63:1-64:0">Fixed missing db parameter (<a href="https://github.com/milvus-io/milvus/pull/25759" rel="nofollow noreferrer noopener" target="_blank">#25759</a>)</li>
</ul>
<h3 data-sourcepos="65:1-65:16" dir="auto">
<a id="user-content-enhancements" class="anchor" href="#enhancements" aria-hidden="true"></a>Enhancements</h3>
<ul data-sourcepos="67:1-81:0" dir="auto">
<li data-sourcepos="67:1-69:148">Improved monitoring metrics:
<ul data-sourcepos="68:5-69:148">
<li data-sourcepos="68:5-68:110">Fixed DataCoord consuming DataNode tt metrics (<a href="https://github.com/milvus-io/milvus/pull/25761" rel="nofollow noreferrer noopener" target="_blank">#25761</a>)</li>
<li data-sourcepos="69:5-69:148">Fixed monitoring metrics (<a href="https://github.com/milvus-io/milvus/pull/25549" rel="nofollow noreferrer noopener" target="_blank">#25549</a>) (<a href="https://github.com/milvus-io/milvus/pull/25659" rel="nofollow noreferrer noopener" target="_blank">#25659</a>)</li>
</ul>
</li>
<li data-sourcepos="70:1-71:112">Reduced Standalone CPU usage:
<ul data-sourcepos="71:5-71:112">
<li data-sourcepos="71:5-71:112">Used zstd compression after level 2 for RocksMQ (<a href="https://github.com/milvus-io/milvus/pull/25238" rel="nofollow noreferrer noopener" target="_blank">#25238</a>)</li>
</ul>
</li>
<li data-sourcepos="72:1-72:122">Made compaction RPC timeout and parallel maximum configurable (<a href="https://github.com/milvus-io/milvus/pull/25654" rel="nofollow noreferrer noopener" target="_blank">#25654</a>)</li>
<li data-sourcepos="73:1-73:127">Accelerated compiling third-party libraries for AWS and Google SDK (<a href="https://github.com/milvus-io/milvus/pull/25408" rel="nofollow noreferrer noopener" target="_blank">#25408</a>)</li>
<li data-sourcepos="74:1-74:120">Removed DataNode time-tick MQ and use RPC to report instead (<a href="https://github.com/milvus-io/milvus/pull/24011" rel="nofollow noreferrer noopener" target="_blank">#24011</a>)</li>
<li data-sourcepos="75:1-75:94">Changed default log level to info (<a href="https://github.com/milvus-io/milvus/pull/25278" rel="nofollow noreferrer noopener" target="_blank">#25278</a>)</li>
<li data-sourcepos="76:1-76:94">Added refunding tokens to limiter (<a href="https://github.com/milvus-io/milvus/pull/25660" rel="nofollow noreferrer noopener" target="_blank">#25660</a>)</li>
<li data-sourcepos="77:1-77:128">Added write the cache file to the <code>cacheStorage.rootpath</code> directory (<a href="https://github.com/milvus-io/milvus/pull/25714" rel="nofollow noreferrer noopener" target="_blank">#25714</a>)</li>
<li data-sourcepos="78:1-81:0">Fixed inconsistency between catalog and in-memory segments meta (<a href="https://github.com/milvus-io/milvus/pull/25799" rel="nofollow noreferrer noopener" target="_blank">#25799</a>) (<a href="https://github.com/milvus-io/milvus/pull/25801" rel="nofollow noreferrer noopener" target="_blank">#25801</a>)
<ul data-sourcepos="79:5-81:0">
<li data-sourcepos="79:5-79:108">fixed DataCoord consume DataNode tt metrics (<a href="https://github.com/milvus-io/milvus/pull/25761" rel="nofollow noreferrer noopener" target="_blank">#25761</a>)</li>
<li data-sourcepos="80:5-81:0">Fixed monitoring metrics (<a href="https://github.com/milvus-io/milvus/pull/25549" rel="nofollow noreferrer noopener" target="_blank">#25549</a>) (<a href="https://github.com/milvus-io/milvus/pull/25659" rel="nofollow noreferrer noopener" target="_blank">#25659</a>)</li>
</ul>
</li>
</ul>
<h3 data-sourcepos="82:1-82:30" dir="auto">
<a id="user-content-performance-related-issues" class="anchor" href="#performance-related-issues" aria-hidden="true"></a>Performance-related issues</h3>
<ul data-sourcepos="84:1-90:102" dir="auto">
<li data-sourcepos="84:1-84:96">Added PK index for string data type (<a href="https://github.com/milvus-io/milvus/pull/25402" rel="nofollow noreferrer noopener" target="_blank">#25402</a>)</li>
<li data-sourcepos="85:1-85:222">Improved write performance with partition key; remove sync segmentLastExpire every time when assigning (<a href="https://github.com/milvus-io/milvus/pull/25271" rel="nofollow noreferrer noopener" target="_blank">#25271</a>) (<a href="https://github.com/milvus-io/milvus/pull/25316" rel="nofollow noreferrer noopener" target="_blank">#25316</a>)</li>
<li data-sourcepos="86:1-86:180">Fixed issues to avoid unnecessary reduce phase during search (<a href="https://github.com/milvus-io/milvus/pull/25166" rel="nofollow noreferrer noopener" target="_blank">#25166</a>) (<a href="https://github.com/milvus-io/milvus/pull/25192" rel="nofollow noreferrer noopener" target="_blank">#25192</a>)</li>
<li data-sourcepos="87:1-87:87">Updated default nb to 2000 (<a href="https://github.com/milvus-io/milvus/pull/25169" rel="nofollow noreferrer noopener" target="_blank">#25169</a>)</li>
<li data-sourcepos="88:1-88:204">Added <code>minCPUParallelTaskNumRatio</code> config to enable better parallelism when estimated CPU usage of a single task is higher than total CPU usage (<a href="https://github.com/milvus-io/milvus/pull/25772" rel="nofollow noreferrer noopener" target="_blank">#25772</a>)</li>
<li data-sourcepos="89:1-89:154">Fixed coping segment offsets twice (<a href="https://github.com/milvus-io/milvus/pull/25729" rel="nofollow noreferrer noopener" target="_blank">#25729</a>) (<a href="https://github.com/milvus-io/milvus/pull/25730" rel="nofollow noreferrer noopener" target="_blank">#25730</a>)</li>
<li data-sourcepos="90:1-90:102">Added limits on the number of go routines (<a href="https://github.com/milvus-io/milvus/pull/25171" rel="nofollow noreferrer noopener" target="_blank">#25171</a>)</li>
</ul>2023-08-24T14:51:38+08:00grootyihua.mo@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230720v2.2-testing-20230720<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230720-<a href="/milvus-io/milvus/-/commit/7bf39aed089a30460ec705a454e52bcc1792b9c7" data-original="7bf39aed" data-link="false" data-link-reference="false" data-project="123" data-commit="7bf39aed089a30460ec705a454e52bcc1792b9c7" data-reference-type="commit" data-container="body" data-placement="top" title="chunk manager supports using gcs & oss with accessKey (#25233)" class="gfm gfm-commit has-tooltip">7bf39aed</a></p>2023-08-24T14:51:54+08:00shaoyueshaoyue.chen@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230717v2.2-testing-20230717<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230717-<a href="/milvus-io/milvus/-/commit/a8f73051e0d979343151c7e1fb1e899716ffe4d2" data-original="a8f73051" data-link="false" data-link-reference="false" data-project="123" data-commit="a8f73051e0d979343151c7e1fb1e899716ffe4d2" data-reference-type="commit" data-container="body" data-placement="top" title="Update pymilvus version and update some test cases (#25479)" class="gfm gfm-commit has-tooltip">a8f73051</a></p>2023-08-24T14:51:54+08:00nico109071306+NicoYuan1986@users.noreply.github.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230713v2.2-testing-20230713<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230713-<a href="/milvus-io/milvus/-/commit/c51922eb0b16e460306ba37d62585995ab65feff" data-original="c51922eb" data-link="false" data-link-reference="false" data-project="123" data-commit="c51922eb0b16e460306ba37d62585995ab65feff" data-reference-type="commit" data-container="body" data-placement="top" title="Use sync.Map to reduce lock granularity to make create collection faster (#25485)" class="gfm gfm-commit has-tooltip">c51922eb</a></p>2023-08-24T14:51:54+08:00Bingyi Sunsunbingyi1992@gmail.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230710v2.2-testing-20230710<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230710-<a href="/milvus-io/milvus/-/commit/81278f4aea95de327a04c55680bd4100d288cff9" data-original="81278f4a" data-link="false" data-link-reference="false" data-project="123" data-commit="81278f4aea95de327a04c55680bd4100d288cff9" data-reference-type="commit" data-container="body" data-placement="top" title="Fix bug of missing JSON type when sorting retrieve results (#25412) (#25455)" class="gfm gfm-commit has-tooltip">81278f4a</a></p>2023-08-24T14:51:54+08:00cai.zhangcai.zhang@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230706v2.2-testing-20230706<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230706-<a href="/milvus-io/milvus/-/commit/823ede3a51245a714b04fc678b7623b9ad05bad6" data-original="823ede3a" data-link="false" data-link-reference="false" data-project="123" data-commit="823ede3a51245a714b04fc678b7623b9ad05bad6" data-reference-type="commit" data-container="body" data-placement="top" title="Fix BinaryRange expression on indexed chunk (#25372)" class="gfm gfm-commit has-tooltip">823ede3a</a></p>2023-08-24T14:51:54+08:00Jiquan Longjiquan.long@zilliz.comhttps://gitcode.net/milvus-io/milvus/-/tags/v2.2-testing-20230703v2.2-testing-20230703<p data-sourcepos="1:1-1:53" dir="auto">Image: milvusdb/weekly-build:master-20230703-<a href="/milvus-io/milvus/-/commit/b68fa2049bc068564b13faa31cee491580395fd7" data-original="b68fa204" data-link="false" data-link-reference="false" data-project="123" data-commit="b68fa2049bc068564b13faa31cee491580395fd7" data-reference-type="commit" data-container="body" data-placement="top" title="Fix querycoord segment checker nil reference (#25290)" class="gfm gfm-commit has-tooltip">b68fa204</a></p>2023-08-24T14:51:54+08:00congqixiacongqi.xia@zilliz.com