Last Week in Milvus
What's New
期待已久的 2.2.11 终于发布了,2.2.11 中修复了大量稳定的问题,同时对性能有一定的优化。
Core Updates
#25092 统一了 KV interface,在 Milvus 的架构中 meta stroage 是以 KV 的形式保存的, 目前仅支持 Etcd 作为 meta stroage,随着 meta 增大之后越来越多的用户需求容量更大的存储。所以 Milvus 会有一系列的 commit 对 KV 做一层抽象,对上层代码屏蔽 storage 的具体实现。
#24929 经过持续运维 Milvus,偶尔会发现一段时间 search 请求有毛刺,latency 明显高于其他时间段。经过排查发现是在 segment 发生替换时,search 请求有可能会读两份 segment,导致性能下降。在此 pr 中为 load segment 增加了版本信息,查询时同样带着版本信息,避免发生数据读两遍的问题。
#25147 对 C++ 中的 ColumnType 类型进行了重构。在 Milvus 的演进过程中一开始都是固定长度的类型例如 vector、int、float 等, 后来加入了 varchar、JSON 等变长类型,在 2.3 中又加入了 mmap 支持,计划还会加入 batch 读写等方法,导致现有的 ColumnType 代码较为臃肿需要翻新,这次重构后代码逻辑更为清晰,日后的扩展也更容易。
#25159 将 go routine 池改成单例模式。在之前的版本中每创建一个 Collection 就会创建一个协程池,在系统中有大量 Collection 的场景中,会造成严重的资源浪费,包括内存、调度器都会有不少空转的情况,影响系统的稳定性和性能。改成单例模式后,能够更合理的使用系统资源。
Knowhere
#966 统一了 DiskANN 和 HNSW 的参数 #978 支持 HNSW 索引中使用 binary 向量
Birwatcher
#159 Birdwatcher 在 show collection 命令中增加了显示 create time #160 为 show collection 增加了 dbid 参数,在 Milvus 2.2.9 之后支持了 database。增加了 dbid 参数后,可以按照 dbid 进行过滤。
New contributor
What's Up Next
预计 7 月上旬会发布 2.3.0 正式版。
Did you know
在创建 collection 时,可以指定 shard 数量,默认是 1 个 shard。shard 数量越多,写入的吞吐越大,相应的代价是查询 reduce 的步骤会越复杂,性能也就越低。所以在写入不多时,不建议修改此参数,相反如果数据量很大同时写入很频繁,建议根据测试结果调整。
🌟全托管 Milvus SaaS/PaaS 即将上线,由 Zilliz 原厂打造!覆盖阿里云、百度智能云、腾讯云、金山云。目前已支持申请试用,企业用户 PoC 申请或其他商务合作请联系 business@zilliz.com。
如果在使用 Milvus 或 Zilliz 产品有任何问题,可添加小助手微信 “zilliz-tech” 加入交流群。
欢迎关注微信公众号“Zilliz”,了解最新资讯。
评论