关于人工智能:又见版本升级一句话概括-Milvus-224资源隔离多云高效

6次阅读

共计 1847 个字符,预计需要花费 5 分钟才能阅读完成。

作者:Zilliz 首席工程师 焦恩伟

Milvus 2.2.4 来啦!

通过几周的开发,Milvus 2.2.4 版本于近期正式上线。Milvus 2.2.4 是 Milvus 2.2.0 的一次小版本升级,版本虽小,却为社区带来了不少实用的新个性,包含基于命名空间的资源分组、汇合级别的物理隔离和汇合重命名等,同时新版本原生反对了 GCP,其余云的原生反对也在紧锣密鼓的进行中。

此外,Milvus 2.2.4 还解决了与滚动降级、故障复原和负载平衡相干的若干问题。这些问题的修复有助于进步零碎的稳定性、可靠性以及缩短故障复原工夫。

总结下来一句话——资源隔离、多云、高效!

新个性

资源组

很多用户把 Milvus 作为向量中台 或 AI 中台的重要组成部分,作为中台来说,必不可少的性能就是多租户和资源隔离、故障隔离。在没有资源组性能之前,很多用户为了保障资源、故障隔离,会为每一位业务用户启动一套 Milvus 集群,这无疑是一种浪费资源的体现,因而资源组和多租户的需要在社区中始终呼声很高。作为 Milvus 的用户必定心愿一步到位,如果 Milvus 能间接把资源组性能做好是最现实的状态,然而资源组是更偏平台、治理的性能,而且需要繁多、众口难调。

Milvus 作为一款数据库产品,通过资源组对外提供资源隔离的能力,平台侧基于资源隔离的能力对业务用户提供多租户的能力,是一种很好的集成形式。对于资源的具体介绍,详见文档 https://milvus.io/docs/resource_group.md

Collection Rename

在生产应用数据库的过程中,表 Schema 变更是个常见的运维操作,Milvus 在 2.2.4 版本中先是反对了 collection rename 操作,后续更细粒度的 Schema 变更,如加减 Column、扭转 Column 的信息等能力正在设计和开发过程中,会在后续版本中继续迭代。Rename Collection 的应用形式见文档 https://milvus.io/docs/rename_collection.md

Search 和 Query API 的新选项

在 Milvus 的数据架构中,数据分为 Growing 数据和 Sealed 数据,顾名思义,Sealed 数据是曾经长久化并且建好索引的数据块,而 Growing 数据则没有索引,在查问时对于 Growing 数据使用暴力搜寻的形式查找 TopK,再和 Sealed 数据中的 TopK 后果进行合并。

不难发现如果 Growing 的数据很多或写入频率过高的话,势必会对查问性能有较大的影响。对于谋求低提早、查问后果稳固的用户来讲,Growing 数据的多少间接影响了零碎的可用性。在不少用户场景中,他们对于实时数据没有那么高的要求。基于以上需要,咱们在查问参数中新增了跳过 Growing 数据的选项,启用此选项将跳过对所有 Growing 数据的搜寻,在搜寻插入场景下提供更好的搜寻性能。

反对 Google Cloud Storage

Milvus 当初反对 Google Cloud Storage 作为对象存储,应用 Google Cloud 的用户能够无缝对接 GCP 的对象存储。

系统优化

性能晋升

通过性能分析,咱们发现了泛滥性能优化点,通过这些优化,Milvus 2.2.4 版本在性能上又有了长足的停顿:

  1. 在查问阶段跳过计算 count all bitsets
  2. Collection load 过程中缩小内存拷贝
  3. 查问过程中跳过为长度为 0 的数据申请内存
  4. 降级 Knowhere 至 1.3.9,减速 IVF 查问
  5. 优化查问后果合并策略
  6. 优化对象存储拜访的 IO,缩小与对象存储间的 rpc 调用

内存优化

在内存优化方面,咱们也进行了相应的晋升:

  1. 减少了 datanode 内存占用过大时,强制 flush 的策略
  2. 依照 16MB 切割 index 文件,避免内存占用过大
    其余优化
    此外,咱们也对新版本做了其余优化:
  3. 调整 RockMQ page 大小至 256 M,缩小 standalone 模式下的磁盘占用
  4. 调整 etcd 超时工夫至 20 s,缩小故障复原工夫

问题修复

在降级新版本的过程中,Milvus 2.2.4 也致力修复了一些问题,数量超过 40,在此仅 highlight 一些 critical 的问题(感激测试团队能在公布前发现如此多的问题)。

  1. 修复在 DiskANN 索引下,QueryNode 无奈重启问题
  2. 修复 DataCoord 在 watch etcd 事件时的一系列超时问题
  3. 修复因为负载平衡策略导致的 QueryCoord panic 问题
  4. 修复空 segmen t 状况下,DataCoord 读取 panic 的问题

本文由 mdnice 多平台公布

正文完
 0