从 Milvus 2.2 到 2.2.6,我们是如何持续稳定升级的

news2024/9/23 23:28:51

最近,Milvus 发布了 2.2.6 版本,在修复了一些 bug 后,Milvus 变得越发稳定。

事实上,自 Milvus 升级至 2.X 版本以来,我们一直在努力改进及优化,推出了诸如从文件中批量导入数据、基于磁盘的近似最近邻(ANN)索引算法、不停机滚动升级、Coordinator HA 高可用、资源组等新功能,也提高了诸如元数据存储、批量导入等性能。

本文通过复盘从 Milvus 2.2 到 Milvus 2.2.6 版本的变化、升级,带你深入了解一个更加稳定、流畅、易用的 Milvus。

alt

01.Milvus 2.2:提升向量搜索的稳定性、搜索速度和灵活的扩缩容能力

Milvus 2.2 是一个重大版本更新,不仅推出了 New Feature,还做出了许多突破性的改进:

从文件中批量导入数据:Milvus 提供了一系列新的 API,用于支持从文件中更有效率地批量导入数据。能够将存放于 Minio 或 S3 上的任意 JSON 文件中的数据直接导入 Milvus,数据导入省时省力。

搜索结果分页:为了避免单个 RPC 会话返回过多的搜索结果,Milvus 现已支持通过设置偏移量(offset)和关键词的方式减少返回的搜索结果数量。

基于角色的访问控制(RBAC):Milvus 现已支持 RBAC。用户可以通过管理用户、角色和权限实现对 Milvus 数据库的访问控制。

配额和限制:配额是 Milvus 用来保护系统在流量突发时免受内存溢出(OOM)和崩溃困扰的新机制。通过该机制,您可以控制数据插入、搜索速率和内存使用。

集合生存时间(TTL):在之前的版本中,Milvus 仅支持设置集群层级的 TTL。Milvus 现已支持在创建或修改集合时设置该集合的 TTL。在设置了 TTL 的集合中的数据会在 TTL 结束后到期。通过这一特性,用户可以更精确地管理数据。

基于磁盘的近似近邻搜索索引(Beta):Milvus 现已支持 DiskANN,用于实现基于磁盘的大规模数据集索引能力。DiskANN 是一种基于 Vamana 图像对常驻固态磁盘的数据集进行近似近邻搜索的索引算法。使用该算法可节省大约 10 倍的内存使用量。

数据备份工具(Beta):Milvus 2.2 提供全新的数据备份工具,并支持使用命令行和调用 API 的方式实现数据库备份和恢复。

除了上述新特性外,Milvus 2.2 修复了部分 bug,并进行了诸多改进以增强 Milvus 的稳定性、可观察性和性能。

Milvus 2.2 Release Notes : https://milvus.io/docs/release_notes.md#v220

点击可阅读文章《Milvus 2.2 版本发布!》

02.Milvus 2.2.1 和 2.2.2:小版本发布,主打修复问题

Milvus 2.2.1 和 2.2.2 都是小版本发布,修复了旧版本中的关键问题,并新增部分特性。

Milvus 2.2.1:

  • 支持 Pulsar 租户和身份验证

  • 在 etcd 配置中支持传输层安全性协议(TLS)

  • 搜索性能提高 30% 以上

  • 优化调度器(scheduler)并提升任务合并概率

  • 修复了多个漏洞,包括:在索引标量字段上过滤失败、创建索引失败时引发的 Index Node 崩溃

Milvus 2.2.2:

  • 修复 Proxy 未更新 Shard leader 缓存的问题

  • 修复被释放的collection/partition中加载数据未被清理的问题

  • 修复加载计数未被及时清理的问题

Milvus 2.2.1 Release Notes:https://milvus.io/docs/release_notes.md#v221

Milvus 2.2.2 Release Notes:https://milvus.io/docs/release_notes.md#v222

03.Milvus 2.2.3:安全、稳定、升级友好

Milvus 2.2.3 主要增强了系统的安全性、稳定性和可用性,并推出了两个重要的特性。

  • 不停机滚动升级:Milvus v2.2.3 版本上线了滚动升级能力。这意味着在升级过程中,用户的查询、搜索请求不会中断。

  • Coordinator 高可用(HA):Milvus coordinator 能够以主备节点的模式工作,降低单点故障的风险。Coordinator 高可用可以大幅缩短系统恢复时间。如果意外发生灾难,系统只需最多30秒便可恢复。

除此以外,Milvus 2.2.3 版本还进行了改进和修复多个漏洞,包括:批量导入(bulk insert)性能大幅提升、Metrics 信息优化、查询性能提升、内存(memory)占用降低、元数据存储性能提升等。

Milvus 2.2.3 Release Notes:https://milvus.io/docs/release_notes.md#v223

点击可阅读文章《Milvus 新版本来啦!首席工程师带你划重点:安全、稳定、升级友好》

04.Milvus 2.2.4:资源隔离、多云、高效

Milvus 2.2.4 是 Milvus 2.2 的一次小版本升级。Milvus 2.2.4 推出了四个新特性,并提升了性能、可靠性和效率,降低资源消耗。

  • 资源组:Milvus 支持将多个 Query Node 分到其他资源组中,从而完全隔离对不同资源组中物理资源的访问。

  • 重命名集合(collection):新增集合重命名 API,可用于更改集合名称,使得集合管理变得更灵活。

  • 支持 Google Cloud Storage:Milvus 现在支持 Google Cloud Storage 作为对象存储,使用 Google Cloud 的用户可以无缝对接 GCP 的对象存储。

  • 搜索(Search) 和查询(Query) API 的新选项:我们在查询参数中新增了跳过 Growing 数据的选项,启用此选项将跳过对所有 Growing 数据的搜索,在搜索插入场景下提供更好的搜索性能。

Milvus 2.2.4 Release Notes:https://milvus.io/docs/release_notes.md#v224

点击可阅读文章《又见版本升级!一句话概括 Milvus 2.2.4:资源隔离、多云、高效》

05.Milvus v2.2.6:稳定性升级

Milvus 2.2.6 版本修复了众多关于稳定性问题。

性能强化

当延迟不少于 5 秒时,为查询/搜索添加了慢日志性能。Milvus 默认日志级别是 info,查询链路并发大、性能敏感,所以查询链路的日志都是debug级别,在生产环境无法看到查询链路的日志。如果用户要统计慢查询就无从下手,MySQL的慢查询日志就是个很好的范例,所以 Milvus 也在日志中加入了慢查询记录。

解决的关键问题

  • 修复了DataCoord GC失败的问题

  • 修复了在创建 collection 时传递的索引参数将覆盖后续 create_index 操作中传递的参数的问题

  • 解决了 RootCoord 中出现消息积压导致整个系统延迟增加的问题

  • 修正了指标 RootCoord InsertChannelTimeTick 的准确性

  • 解决 Proxy 报告时间戳可能在某些情况下停止工作的问题

  • 修复 Coordinator 角色在重启过程中可能会 panic 的问题

  • 修复由于 etcd 重新启动而导致垃圾回收 goroutine 异常退出,留下检查点等问题

Milvus 2.2.6 Release Notes:https://milvus.io/docs/release_notes.md#v226

从 Milvus 2.2 到 2.2.6 的最新版本,每一次的版本升级背后都离不开用户的支持与建议,我们始终坚持为用户提供最前沿的解决方案,为各个领域的应用提供支持。提前预告一下,Milvus 2.2.7 已在紧锣密鼓地准备中,即将发版,敬请期待!

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过ppt制作圆形图标及自定义形状图形制作

今天做PPT时,需要一个圆形的截图,日常截图都是方形的,能不能把截图裁剪为一个圆形呢?于时从网上找了一下,发现还真有。 制作工具:PPT 制作步骤: 1、准备图片 将截图或图片插入PPT中 2、在…

(04)基础强化:接口,类型转换cast/convert,异常处理,传参params/ref/out,判断同一对象

一、复习 1、New的截断是指什么? new除了新开空间创建初始化对象外,还有一个隐藏父类同名方法的作用。 当子类想要隐藏父类同名的方法时用new,用了new后父类同名方法将到此为止,后面 继承的…

electron+vue3全家桶+vite项目搭建【15】vue3+sass实现多主题一键切换,支持electron多窗口同步更新

文章目录 引入实现效果展示实现思路整理实现步骤1.定义全局主题样式变量2.定义主题模板3.封装颜色工具类4.初始化主题色5.主进程监听颜色修改6.补充主题状态管理7.主题一键切换组件8.测试案例 引入 我们之前在这篇文章中集成了 sass,接下来我们结合sass的变量定义&…

银行数字化转型导师坚鹏:宏观经济形势分析与银行发展模式创新

宏观经济形势分析与银行发展模式创新 课程背景: 很多学员存在以下问题: 不知道我国目前的宏观经济形势? 不清楚宏观环境对我国经济的影响? 不知道银行未来主要的发展模式? 课程特色: 精彩解读宏…

最新:机器学习在生态、环境经济学中的实践技术应用及论文写作

查看原文>>>最新:机器学习在生态、环境经济学中的实践技术应用及论文写作 目录 专题一、理论基础与软件介绍 专题二、数据的获取与整理 专题三、常用评价方法与相关软件详细教学(案例详解) 专题四、写作要点与案例的讲解 近年来…

Redis数据库常用语句

Redis数据库常用语句 前言1. 键(Key)的基本操作1.1 增加新的键值对1.2 访问键的值1.3 修改键值对1.4 键值对的删除1.5 判断键值对是否存在1.6 获取所有键1.7 删除所有的键: 2. Redis 中的列表2.1 列表加入新元素2.2 获取列表长度2.3 获取指定下标的元素2.4 获取指定…

Android App 架构 面试专题,你可能会被问到的 20 个问题

iveData 是否已经被弃用? 没有被弃用。在可以预见的未来也没有废弃的计划。 LiveData 可以使用简单的方式获取一个易于观察、状态安全的对象。虽然其缺少一些丰富的操作符,但是对于一些简单的 UI 业务场景已经足够。 Flow 有 LiveData 相同的功能,其…

1.栈的介绍-C语言调用函数(二)

1.栈的介绍-C语言调用函数(一)_双层小牛堡的博客-CSDN博客 接着上面 函数调用的约定 在栈帧中 主要的是主调函数如何存入实参 让被调用函数能够访问 这种是通过函数见的调用规定来规范的 并且 调用规定还规范了 函数执行完后应该由主函数实现 清除参…

[测试猿课堂]小白怎么学测试?史上最全《软件测试》学习路线

熬夜3天,联合3位猿计划教育的总监级授课老师,整理了这份《软件测试小白学习路线》,全文接近6000字,请大家耐心看完! 对于很多想通过自学转行软件测试的同学,痛点并不是学习动力,而是找不到清晰…

Apache SeaTunnel 3 分钟入门指南

简介 新一代分布式超高性能云原生数据同步工具 - Apache SeaTunnel 已经在B站、腾讯云、字节等数百家公司使用。 SeaTunnel 是 Apache 软件基金会下的一个高性能开源大数据集成工具,为数据集成场景提供灵活易用、易扩展并支持千亿级数据集成的解决方案。SeaTunnel …

《计算机网络--自顶向下方法》第三章--运输层

3.1概述和运输层服务 运输层协议为运行再不同主机上的应用进程之间提供了逻辑通信(logic communication)功能 运输层协议是在端系统中而不是在路由器中实现的 3.1.1运输层和网络层的关系 运输层协议至工作在端系统中 在端系统中,运输层…

基于Mybatis使用MySql存储过程,实现数据统计功能

1、前言 作为一个工作了很多年的程序员来说,没有在实际工作中真正使用过存储过程,其实对存储过程本身有过了解和学习,在日常的学习中,也会看过一些存储过程的相关介绍,不过“纸上得来终是浅”,正好这次做统…

Linux 利用网络同步时间

yum -y install ntp ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate ntp1.aliyun.com 创建加入crontab echo "*/20 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/dev/null &" >> /var/spool/cron/rootntp常用服务器 中国国家授…

力扣sql中等篇练习(十三)

力扣sql中等篇练习(十三) 1 每位学生的最高成绩 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 #先找到最大的元素 然后分组即可,不用管某些字段(grade)是不是聚合字段 SELECT e1.student_id,min(e1.course_id) course_id,e1.grade FROM Enrollment…

setup.py方式打包自己的python代码并可以用pip install安装

setup.py方式打包自己的python代码并可以用pip install安装 所需文件及目录规范示例演示引用自己打的包 所需文件及目录规范 注意setup.py文件和MANIFEST.in文件需要放在和你需要打包的目录同一级下,例如我这里需要打包的就是webconsole文件夹(这里webc…

gl-opendrive插件(车俩3D仿真模拟自动驾驶)

简介 本插件基于免费opendrive开源插件、Threejs和Webgl三维技术、vue前端框架,blender开源建模工具等进行二次开发。该插件由本人独立开发以及负责,目前处于demo阶段,功能还需待完善,由于开发仓促代码还需优化。 因此&#xff…

35岁测试人,面临职场危机,打了一场漂亮的翻身仗...

“夜深知雪重,时闻折竹声”。雪折,一种在雪的载荷下,植物(多指树)的躯干或枝条被不断堆积的雪花压断的现象。我的刚刚经历了人生的第一次“雪折”。 我是一个有点聪明且勤奋好学的人,从考入省重点大学起&a…

Windows环境下C++ 安装OpenSSL库 源码编译及使用(VS2019)

参考文章https://blog.csdn.net/xray2/article/details/120497146 之所以多次一举自己写多一篇文章,主要是因为原文内容还是不够详细。而且我安装的时候碰到额外的问题。 1.首先确认一下自己的代码是Win32的还是Win64的,我操作系统是64的,忘…

java websocket实现聊天室 附源码

目录 1.Socket基础知识 2.socket代码实现 2.1 引入依赖 2.2 配置websocket 2.3 websocket的使用 2.4 webSocket服务端模块 2.5 前端代码 3.测试发送消息 4.websocket源码地址 1.Socket基础知识 Socket(套接字)用于描述IP地址和端口&#xff0c…

4年测试工作经验,跳槽之后面试20余家公司的总结

先说一下自己的个人情况,普通二本计算机专业毕业,懂python,会写脚本,会selenium,会性能,然而离职后到今天都没有收到一份offer!一直在待业中,从离职第一天就开始准备简历&#xff0c…