
经过了 4 个月的打磨,Milvus 2.2.0 于 11 月 18 日正式发版!2.2 版本推出了包括基于磁盘的近似最近邻(ANN)索引算法、从文件批量导入数据、基于角色的访问控制等新特性。进一步提升了向量搜索的稳定性、搜索速度和灵活的扩缩容能力。
| Milvus 版本 | Python SDK 版本 | Java SDK 版本 | Go SDK 版本 | Node.js SDK 版本 |
|---|---|---|---|---|
| 2.2.0 | 2.2.0 | 2.2.0 | Coming soon | 2.2.0 |
新特性
从文件中批量导入数据
Milvus 提供了一系列新的 API,用于支持从文件中更有效率地批量导入数据。现在您可以将存放于 Minio 或 S3 上的任意 JSON 文件中的数据直接导入 Milvus。请阅读从文件中导入数据章节[1]获取更多信息。
搜索结果分页
为了避免单个 RPC 会话返回过多的搜索结果,Milvus 现已支持通过设置偏移量(offset)和关键词的方式减少返回的搜索结果数量。请阅读搜索[2]和查询[3]章节获取更多信息。
基于角色的访问控制(RBAC)
与其它传统的数据库类似,Milvus 现已支持 RBAC。您可以通过管理用户、角色和权限实现对 Milvus 数据库的访问控制。请阅读启用 RBAC [4]章节获取更多信息。
配额和限制
配额是 Milvus 用来保护系统在流量突发时免受内存溢出(OOM)和崩溃困扰的新机制。通过该机制,您可以控制数据插入、搜索速率和内存使用。请阅读配置配额和限制[5]章节获取更多信息。
集合生存时间(TTL)
在之前的版本中,Milvus 仅支持设置集群层级的 TTL。Milvus 现已支持在创建或修改集合时设置该集合的 TTL。在设置了 TTL 的集合中的数据会在 TTL 结束后到期。请阅读创建集合[6]或修改集合[7]章节获取更多的信息。
基于磁盘的近似近邻搜索索引(Beta)
在传统近似近邻搜索索引算法中,您需要将索引加载到内存中才能对其进行搜索。Milvus 现已支持 DiskANN,用于实现基于磁盘的大规模数据集索引能力。DiskANN 是一种基于 Vamana 图像对常驻固态磁盘的数据集进行近似近邻搜索的索引算法。使用该算法可节省大约 10 倍的内存使用量。请阅读磁盘索引[8]章节获取更多信息。
数据备份工具(Beta)
Zilliz Inc. 向 Milvus 社区贡献了数据备份恢复工具。Milvus 2.2.0 现已支持使用命令行和调用 API 的方式实现数据库备份和恢复能力。
问题修复与系统稳定性增强
实现了 Query Coord v2,支持完全基于事件的异步分片放置策略。该版本解决了所有搜索阻塞的问题并提升了故障恢复效率。 重构了 Root Coord 和 Index Coord,提供更加优雅的问题处理能力和更好的任务编排能力。 修复了当 Milvus Standalone 版本重启时出现的 RocksMQ 数据保留机制不合法的问题。 重构了 etcd 中 Metadata 的存储机制。通过使用新的压缩机制,etcd 中的键值对体积减少了 10 倍以上,从而解决了 etcd 内存和存储使用量大的问题。 解决了持续插入或删除集合实体引发的内存使用问题。
能力提升
性能提升 解决了 CPU 核数较多时无法充分使用的性能瓶颈。Milvus 现已使用多于 8 核的 CPU,极大地提升了效率。 提升了搜索并发量,大幅降低了搜索时延。 通过并行加载的方式,进一步降低了加载耗时。 可观察性 所有日志等级默认为 INFO。 增加集合级别的时延指标,包括搜索、查询、插入、删除等。 调试工具 Milvus 进一步优化了 BirdWatcher[9] 调试工具。该工具现已支持连接 Metadata 存储并检查 Milvus 部分系统内部状态。
其它
索引和数据加载 没有建立索引的集合无法加载。 集合加载后不能再创建索引。 集合释放后才能删除索引。 Flush 提供 Flush API,用于对数据段进行密封并将其同步到对象存储中。频繁调用 Flush API 可能会产生过多体积较小的数据段,影响搜索性能。 调用 num_entities()
或create_index()
不会自动调用 Flush API。时间旅行 Milvus 2.2 默认关闭时间旅行功能以节省磁盘使用量。如需开启该功能,您需要在配置文件中手动配置 common.retentionDuration
配置项。
不兼容变更
由于 Metadata 存储优化及 API 归一化的影响,Milvus 2.2 与之前发布的版本并不完全兼容。请阅读升级文档[10]获取如何安全地将 Milvus 2.1.x 升级到 2.2.0 的方法。
参考资料
从文件中导入数据章节: https://milvus.io/docs/v2.2.x/bulk_load.md
[2]搜索: https://milvus.io/docs/v2.2.x/search.md
[3]查询: https://milvus.io/docs/v2.2.x/query.md
[4]启用 RBAC : https://milvus.io/docs/v2.2.x/rbac.md
[5]配置配额和限制: https://milvus.io/docs/v2.2.x/configure_quota_limits.md
[6]创建集合: https://milvus.io/docs/v2.2.x/create_collection.md
[7]修改集合: https://milvus.io/docs/v2.2.x/modify_collection.md
[8]磁盘索引: https://milvus.io/docs/v2.2.x/disk_index.md
[9]BirdWatcher: https://github.com/milvus-io/birdwatcher
[10]升级文档: https://milvus.io/docs/v2.2.x/upgrade_milvus_cluster-helm.md
Zilliz 是向量数据库系统领域的开拓者和全球领先者,研发面向 AI 生产系统的向量数据库系统。Zilliz 以发掘非结构化数据价值为使命,致力于打造面向 AI 应用的新一代数据库技术,帮助企业便捷地开发 AI 应用。Zilliz 的产品能显著降低管理 AI 数据基础设施的成本,帮助 AI 技术赋能更多的企业、组织和个人。





