一文剖析高可用向量数据库的本质

news2024/11/15 19:35:47

面对因电力故障、网络问题或人为操作失误等导致的服务中断,数据库系统高可用能够保证系统在这些情况下仍然不间断地提供服务。如果数据库系统不具备高可用性,那么系统就需要承担停机和数据丢失等重大风险,而这些风险极有可能造成用户流失,从而使数据库系统蒙受经济和声誉上的损失。

对于向量数据库而言,高可用同样重要。随着大语言模型(LLM)的爆火,向量数据库备受关注,并已成为各种生成式 AI(GenAI)应用(如 RAG)技术栈中不可或缺的一部分。此外,开发者不再只将向量数据库用于原型设计。越来越多开发者开始在大规模企业级 AI 应用和生产中部署向量数据库。因此,确保向量数据库的高可用性对于提供稳定的业务服务和出色的用户体验变得更加重要。

我们将通过本文探索向量数据库高可用性的本质,并分析 Milvus 向量数据库和 Zilliz Cloud(全托管 Milvus 服务)如何实现高可用。

什么是高可用?

数据库系统中的高可用(HA)是指持续提供服务,将停机时间降至最低,确保系统几乎在任何时间都可访问,即使在日常维护或发生小故障时也是如此。主要的实现高可用途径为消除单点故障,并确保用户始终可以不间断地访问所需数据。在消除单点故障时常用做法包括冗余系统(Redundant Systems)、故障转移机制(Failover)和负载均衡来,从而管理和分配流量。

高可用 vs. 容错

高可用(HA)和容错是数据库系统设计中确保系统可靠性的相关概念。然而,它们在实现方法和效果上有所不同。高可用侧重于通过快速恢复系统组件来最小化停机时间,确保服务在大部分时间内可访问,将服务中断的影响降至最低。另一方面,容错的目的是通过使用专用基础设施来实现零停机时间和零数据丢失,允许在组件失败时无缝运行。因此,相比于高可用,容错机制需要消耗的资源更多、成本开销也更大。

虽然高可用和容错在概念上存在差异,但是两者的目的都是快速恢复服务、有效解决故障,因此,在某些语境下两个概念的含义相同。

高可用黄金标准

高可用虽然不保证 100% 的正常运行时间,但也会努力将正常运行时间控制在 99%以上。我们常听见的“五个九”黄金标准,是指确保系统 99.999% 的正常运行时间。当然,还有其他各个级别的可用性等级,包括“四个九”(99.99%)、“三个九”(99.9%)和“两个九”(99%)。虽然每个级别的可用性都会有潜在停机时间,但本质上还是为了追求为用户提供可靠、安心的服务。

那这些可用性标准和等级到底具体意味着什么?让我们来算一算:

  • 99.999%(五个九)每年的停机时间控制在 5.26 分钟以内。

  • 99.99%(四个九)每年的停机时间控制在 52.60 分钟以内。

  • 99.9%(三个九)每年的停机时间控制在 8.77 小时以内。

  • 99%(两个九)每年的停机时间控制在 3.65 天以内。

高可用的级别越高,相关成本也越高。理由是需要使用更先进的基础设施和技术来降低停机时间。有关高可用级别的选择直接影响您的业务运营方式。需要在成本和业务需求之间做出平衡,并选择合适的可用性等级。

Milvus 向量数据库如何实现高可用

Milvus 是一款高可用的云原生、分布式开源向量数据库,可以轻松部署在 Kubernetes 上。Milvus 通过内存副本(Replica)机制以及各种备份、恢复和同步工具实现系统可靠性。我们将从架构设计、功能和支持工具的角度分析 Milvus 如何实现高可用。

云原生架构支持在 Kubernetes 上快速部署 Milvus

Milvus 采用了云原生分布式架构,将存储和计算分离,便于直接部署到 Kubernetes (K8s) 集群。

通过K8s 的高可用特性和 Milvus 的分布式架构,Milvus 能够轻松实现:

  • 多可用区部署:Milvus 支持跨多个可用区进行部署,将副本分布到不同的区域以增加可靠性。如果一个区域遇到问题,其他区域的副本仍可继续运行。这种做法增强了系统整体的可用性。

  • 健康检查和自愈:K8s 的健康检查机制定期监控服务状态。如果发现 Milvus 节点出现故障或不健康,Kubernetes 会自动重启或替换它,以保持服务连续性。

  • 负载均衡和流量管理:Milvus 高效地在容器之间分配网络流量,避免瓶颈,帮助提升性能和可用性。

  • 存储冗余:Milvus 利用 Kubernetes 的持久卷(PV)和持久卷声明(PVC)来确保数据存储在可靠的存储系统上,保障数据的持久性和可用性。

内存副本机制

Milvus 支持内存副本功能。此功能将完整的数据段加载到单独的查询节点,并在内存中启用多个段副本,以提高性能和可用性。如果带有副本的节点失败或遇到错误,查询请求会迅速重定向到另一个副本节点,无需重新加载数据,从而保持连续的查询服务。更多详情,请阅读文档。

高效的备份、恢复和同步工具

Milvus 提供了专业的工具,如 Milvus-backup 和 Milvus-CDC,以增强数据备份恢复和处理在线增量数据同步。这些工具加强了服务恢复和数据保护。

Milvus-backup

Milvus-backup 是一个辅助用户高效备份和恢复原始数据的工具,支持备份恢复整个实例或特定 Collection。以下为 Milvus-backup 的使用场景:

  • 定期备份在线数据。

  • 在不同的 Milvus 集群之间传输或迁移数据。

  • 在数据意外或恶意修改的情况下恢复到原始的历史版本。

  • 在进行重大变更或维护活动之前进行数据备份,例如系统升级。

Milvus-CDC(变更数据捕获)

Milvus-CDC 是一个捕获并实时同步上游 Milvus Collection 变更并将其下沉到下游 Milvus 实例的工具。它允许用户指定一个实例作为源,另一个作为目标,实现所有或选定部分 Collection 的实时无缝数据同步。与 Milvus-backup 结合使用时,Milvus-CDC 允许用户实施高可用或灾难恢复解决方案。

Zilliz Cloud 高可用

Zilliz Cloud 是基于 Milvus 构建的全托管向量数据库,助力开发人员搭建 GenAI 应用,充分释放非结构化数据的潜力。

Zilliz Cloud 通过资源组(resource group)实现物理隔离,提供多租、备份和恢复、99.9% 服务 SLA 等特性和功能。资源组和多租户功能能够帮助实现用户和数据隔离,防止因意外或人为操作导致的数据丢失。Zilliz Cloud 提供了比 Milvus 离线部署更强大的数据保护和更好的服务弹性。

您可通过系统可用性页面查看 Zilliz Cloud 系统状态。

总结

向量数据库高可用至关重要。Milvus 通过为 Kubernetes 部署优化的云原生分布式架构,增强了系统弹性和可靠性。Milvus 支持故障转移和无缝扩展,并整合了高级功能,如内存副本、备份恢复和数据同步工具。

基于 Milvus 搭建的全托管向量数据库服务 Zilliz Cloud 则提供了更强大的数据保护和服务弹性。Zilliz Cloud 通过资源组实现物理隔离,提供多租户、备份恢复,99.9% SLA 等功能和特性,因此相比 Milvus 将系统高可用提升至新高度。

欢迎阅读《如何规避近年频发的数据安全事故?浅谈 SaaS 数据安全之路》一文,了解数据安全与隐私的重要性。

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

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

相关文章

SpringBoot通过3种方式实现AOP切面

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

实战内测-某内测项目站点FUZZ到Sql注入

0x1 前言 下面给师傅们分享的案例呢是前段时间实战的一个站点&#xff0c;也是我朋友前段时间让我测的一个站点。整体的测试流程也还算ok&#xff0c;然后里面有些细节要是对师傅们有帮助可以收藏下&#xff0c;后面主要是利用FUZZ打了一个sql注入漏洞上去。 0x2 fuzz和sql结…

MAC安装acl

在编译前&#xff0c;需要先从 github https://github.com/acl-dev/acl 下载源码&#xff0c;国内用户可以选择从 gitee https://gitee.com/acl-dev/acl 下载源码。 3.1、Linux/Unix 平台上编译安装 在 Linux/Unix 平台上的编译非常简单&#xff0c;可以选择使用 make 方式或 …

【高校科研前沿】马里兰大学地理科学系在环境科学Top期刊发文:美国本土湿地因不透水面而损失的热点区域

1.文章简介 论文名称&#xff1a;Hotspots of wetland loss to impervious surfaces in the conterminous United States&#xff08;美国本土湿地因不透水面而损失的热点区域&#xff09; 第一作者及单位&#xff1a;Zhenhua Zou&#xff08;马里兰大学(美国)|助理研究教授&a…

Widget自定义动画按钮实战(鼠标进入则放大,离开恢复)

目录 引言 准备工作 步骤一&#xff1a;创建项目和基础控件 步骤二&#xff1a;设计UI 步骤三&#xff1a;自定义按钮类&#xff08;AniBtn&#xff09; 步骤四&#xff1a;在主窗口中使用自定义按钮 步骤五&#xff1a;编译和运行 总结 引言 在Qt开发中&#xff0c;自…

226翻转二叉树

解题思路&#xff1a; \qquad 树相关的题&#xff0c;大部分都可以通过递归来解决。因为树结构&#xff08;尤其是二叉树&#xff09;天然地具有递归发展的性质&#xff1a;对于二叉树的每个树节点&#xff0c;都有一个左节点和一个右节点&#xff0c;且能无限重复延伸。 \qqu…

World of Warcraft [retail] 100G download 2024.07.31

正式服 D:\Battle.net\World of Warcraft\_retail_

微信小程序-选中文本时选中checkbox

1.使用labe嵌套住checkbox标签 <label class"label-box"> <checkbox >匿名提交</checkbox> </label>2.使checkbox和label组件在同一行 .label-box{display: flex;align-items: center; }效果图 此时选中文本匿名提交&#xff0c;checkbox…

ft232 win10驱动

ft232 win10驱动 https://ftdichip.com/drivers/d2xx-drivers/

2024年导游资格证考试报名照很严格!

2024年导游资格证考试报名照很严格&#xff01; #导游证考试 #导游证 #导游资格证考试 #导游资格证 #全国导游证考试 #导游证报名

初学者如何快速掌握工程项目管理软件?

国内外主流的10款工程项目管理系统软件对比&#xff1a;PingCode、Worktile、金蝶EAS、用友NC、汉得信息H3 BPM、SAP ERP、Wrike、Zoho Projects、Accelo、Celoxis。 选择合适的工程项目管理系统软件往往令许多项目经理和团队感到头痛。这不仅关系到项目的效率和成功率&#xf…

C++初学(8)

8.1、string类简介 现在可以用string类型的变量而不是字符数组来存储字符串&#xff0c;string类也用的会比数组简单&#xff0c;同时提供了将字符串作为一种数据类型的表示方式。 要使用string类&#xff0c;必须在程序中包含头文件string。string类位于名称空间std中&#…

昇思25天学习打卡营第XX天|GAN图像生成

感觉顺序要调整下&#xff0c;先GAN再DCGAN再Diffusion 生成式对抗网络&#xff08;GAN&#xff09;是一种前沿的无监督学习模型&#xff0c;由Goodfellow在2014年提出。它包含生成器和判别器两个对抗组件&#xff1a;生成器负责创造逼真的假图像&#xff0c;判别器则判断图像…

多语种语音合成数据,拓宽语音大模型边界

近期&#xff0c;一个名为 ChatTTS 的文本转语音项目爆火出圈&#xff0c;在 GitHub 上已经斩获了 28 k 的 Star 量。 作为一款专门为对话场景设计的语音生成模型&#xff0c;ChatTTS 支持英文和中文两种语言。针对对话式任务进行了优化&#xff0c;实现了自然流畅的语音合成。…

PG物理复制剖析

文章目录 一、物理复制概述二、同步流复制三、pg_basebackup原理源码剖析主流程具体过程 四、主从原理基本介绍1、 WAL日志文件复制2、流复制&#xff08;Streaming Replication&#xff09; 主从原理主从间的通信walsender与walreceiver过程发生故障时的行为扩展问题 一、物理…

KylinSP3 | 一篇搞定金砖信息技术应用创新赛Docker容器集群管理

KylinSP3 | 一篇搞定金砖信息技术应用创新赛Docker容器集群管理 一、知识准备1. Docker介绍2. 四大对象2.1 镜像2.2 容器2.3 网络2.4 数据卷3. Namespace介绍3.1 PID 名字空间3.2 net名字空间3.3 ipc名字空间3.4 mnt 名字空间3.5 uts名字空间3.6 user名字空间4.Docker底层原理-…

linux离线环境下安装anaconda

文章目录 背景下载及传输安装包传输安装包到linux服务器安装anacondash执行安装命令回车接受许可修改安装路径等待解压安装包添加用户环境变量 测试anaconda重新打开终端查看虚拟环境及路径使用ipython进行测试 参考文献 背景 基于内网离linux线环境下&#xff0c;且账号无roo…

Mojo编程语言:AI开发者的未来之选——代码实战解析

1. 引言 在人工智能&#xff08;AI&#xff09;领域&#xff0c;编程语言的选择对于开发效率和性能至关重要。随着AI技术的快速发展&#xff0c;开发者们对编程语言的需求也在不断演变。在这样的背景下&#xff0c;Mojo编程语言应运而生&#xff0c;它以其独特的特性和优势&am…

尚品汇-CompletableFuture异步编排-优化商品详情页(二十五)

目录&#xff1a; &#xff08;1&#xff09;创建异步对象 &#xff08;2&#xff09;计算完成时回调方法 &#xff08;3&#xff09;线程串行化与并行化方法 &#xff08;4&#xff09;多任务组合 &#xff08;5&#xff09;优化商品详情页 &#xff08;1&#xff09;创…

开启智能开发的新纪元:探索 GPT-4o mini 模型的无限可能

引言 随着人工智能技术的飞速发展&#xff0c;大型语言模型已成为推动软件开发和创新的关键力量。OpenAI 最新发布的 GPT-4o mini 模型以其卓越的性能和极具竞争力的价格&#xff0c;为开发者社区带来了新的活力。本文将探讨 GPT-4o mini 模型的特性&#xff0c;以及它如何帮助…