12 月 15 日,时隔半年之久的 Deep dive 活动再度启动,本期 Deep dive 由 Zilliz 合伙人兼技术总监栾小凡为大家详细解读了 Milvus 2.2 版本的新功能,同时 Zilliz 质量保障团队负责人乔燕良也带来了新版本的测试报告分享。
小凡首先提到,Milvus 作为一个迭代速度非常快的社区,基本保持以每 3-4 个月的速度发布大版本,这次的分享主要集中在三块内容:Milvus 2.2 新功能解读;在可运维性、可观测性方面做的建设;社区目前在做的功能介绍。
新功能中,小凡着重提到了以下几点功能:
在运维集群层面,小凡提到了数据的可观测性,包含监控和日志两部分;另外还改变了默认的日志等级,从之前的 debug 改造到 INFO;以及一个重要工具 —— BirdWatcher。BirdWatcher 可以帮助用户观察 Milvus 内部的集群的状态,后续也计划在 BirdWatcher 中加入更多的功能,比如动态更新 Milvus 内部的一些配置等。
最后小凡也提到了 Milvus 接下来版本中的一些计划功能:
Zilliz 质量保障团队负责人乔燕良从四方面为大家带来了分享,分别是 benchmarking 性能展示、Milvus 的稳定性测试、2.2 版本的重构,包括行为和 API 语义的变化以及新功能 Bulk Insert 带来了什么样的收益?
首先对于大家感兴趣的 2.2 版本性能到底如何?燕良展示了三组测试。
第一组测试为 2.2 和 2.1 版本性能的比较,可以发现平均的 QPS 测试性能提升了至少 50%,单机在 QPS 的性能提升更加明显,已经超过了接近 70%;第二组实验是关于 2.2 分布式纵向扩展的性能,结果显示在 CPU 翻一番的情况下,QPS 也增加了一倍,且响应时间变短;第三个实验是关于横向扩展。一个集群能否做横向扩展,对于 Milvus 能否上生产,做一些可扩展性是非常重要的,结果显示也是接近翻了一番。这和 Milvus 2. 1 相比是非常明显的提升。
此链接包含了三组实验的详细信息及环境配置,感兴趣的同学可进行实验:https://milvus.io/blog/2022-08-16-A-Quick-Guide-to-Benchmarking-Milvus-2-1.md
稳定性是社区里问的最多的一个问题,燕良和大家分享了社区是如何做稳定性的。他提到,社区会定期提取和挖掘社区 Issue 中提到的场景,提炼为自己的测试场景,使更加贴近实际的生产环境,进而做持续的并发。在这个过程中,我们会去观察整个系统的稳定性,包括磁盘内存 CPU 的使用情况。非常重要的一点是,我们也会做故障注入的测试,使能够保证 Milvus 稳定持续运行。同时燕良也列了一些避坑指南,回答了大家遇到的比较多的问题,感兴趣的同学可以收看视频。
关于新功能 Bulk Insert,燕良也提到设计 Bulk Insert 最初的目的是为了解决大批量数据插入慢,对系统消耗大的问题,所以它最大的一个功能是节省用户的时间。另外他也通过测试展示,在实时更新数据的过程中,对在线的业务 Search 是基本上没有影响的,这是一个非常重要的功能,欢迎大家去尝试!
最后,新版本发布以来,我们也收到了很多来自社区的反馈和声音,针对用户提问频率比较高和比较关心的问题,小凡也进行了详细的解答,具体请详见视频。