云原生向量数据库Milvus(一)-简述、系统架构及应用场景(下)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: Milvus 是一款云原生向量数据库,它具备高可用、高性能、易拓展的特点,用于海量向量数据的实时召回。

协调服务

协调服务是系统的大脑,负责向执行节点分配任务。它承担的任务包括集群拓扑节点管理、负载均衡、时间戳生成、数据声明和数据管理等。

协调服务共有四种角色:

  • Root coordinator(root coord):负责处理数据定义语言(DDL)和数据控制语言(DCL)请求。比如,创建或删除 collection、partition、index 等,同时负责维护中心授时服务 TSO 和时间窗口的推进。
  • Query coordinator (query coord):负责管理 query node 的拓扑结构和负载均衡以及从 growing segment 移交切换到 sealed segment。Query node 中的 segment 只存在两种状态:growing 和 sealed,分别对应增量数据和历史数据。
  • Data coordinator (data coord):负责管理 data node 的拓扑结构,维护数据的元信息以及触发 flush、compact 等后台数据操作。
  • Index coordinator (index coord):负责管理 index node 的拓扑结构,构建索引和维护索引元信息。


执行节点

执行节点是系统的四肢,负责完成协调服务下发的指令和 proxy 发起的数据操作语言(DML)命令。

由于采取了存储计算分离,执行节点是无状态的,可以配合 Kubernetes 快速实现扩缩容和故障恢复。

执行节点分为三种角色:

  • Query node: Query node 通过订阅消息存储(log broker)获取增量日志数据并转化为 growing segment,基于对象存储加载历史数据,提供标量+向量的混合查询和搜索功能。
  • Data node: Data node 通过订阅消息存储获取增量日志数据,处理更改请求,并将日志数据打包存储在对象存储上实现日志快照持久化。
  • Index node: Index node 负责执行索引构建任务。Index node不需要常驻于内存,可以通过 serverless 的模式实现。


存储服务


存储服务是系统的骨骼,负责 Milvus 数据的持久化,分为元数据存储(meta store)、消息存储(log broker)和对象存储(object storage)三个部分。

元数据存储

负责存储元信息的快照,比如:集合 schema 信息、节点状态信息、消息消费的 checkpoint 等。元信息存储需要极高的可用性、强一致和事务支持,因此,etcd 是这个场景下的不二选择。除此之外,etcd 还承担了服务注册和健康检查的职责。


对象存储

负责存储日志的快照文件、标量/向量索引文件以及查询的中间处理结果。Milvus 采用 MinIO 作为对象存储,另外也支持部署于 AWS S3 和Azure Blob 这两大最广泛使用的低成本存储。但是,由于对象存储访问延迟较高,且需要按照查询计费,因此 Milvus 未来计划支持基于内存或 SSD 的缓存池,通过冷热分离的方式提升性能以降低成本。


消息存储

消息存储是一套支持回放的发布订阅系统,用于持久化流式写入的数据,以及可靠的异步执行查询、事件通知和结果返回。执行节点宕机恢复时,通过回放消息存储保证增量数据的完整性。

目前,分布式版Milvus依赖 Pulsar 作为消息存储,单机版Milvus依赖 RocksDB 作为消息存储。消息存储也可以替换为 Kafka、Pravega 等流式存储。

整个 Milvus 围绕日志为核心来设计,遵循日志即数据的准则,因此在 2.0 版本中没有维护物理上的表,而是通过日志持久化和日志快照来保证数据的可靠性。

网络异常,图片无法展示
|


日志系统作为系统的主干,承担了数据持久化和解耦的作用。通过日志的发布订阅机制,Milvus 将系统的读、写组件解耦。一个极致简化的模型如上图所示,整个系统主要由两个角色构成,分别是消息存储(log broker)(负责维护”日志序列“)与“日志订阅者”。其中的“日志序列”记录了所有改变库表状态的操作,“日志订阅者”通过订阅日志序列更新本地数据,以只读副本的方式提供服务。 发布订阅机制还为系统在变更数据捕获(CDC)和全面的分布式部署方面的可扩展性提供了空间。


Milvus 主要的组件

Milvus 支持两种部署模式,单机模式(standalone)和分布式模式(cluster)。两种模式具备完全相同的能力,用户可以根据数据规模、访问量等因素选择适合自己的模式。Standalone 模式部署的 Milvus 暂时不支持在线升级为 cluster 模式。


单机版 Milvus

单机版 Milvus 包括三个组件:

  • Milvus 负责提供系统的核心功能。
  • etcd 是元数据引擎,用于管理 Milvus 内部组件的元数据访问和存储,例如:proxy、index node 等。
  • MinIO 是存储引擎,负责维护 Milvus 的数据持久化。

网络异常,图片无法展示
|


分布式版 Milvus

分布式版 Milvus 由八个微服务组件和三个第三方依赖组成,每个微服务组件可使用 Kubernetes 独立部署。

微服务组件

  • Root coord
  • Proxy
  • Query coord
  • Query node
  • Index coord
  • Index node
  • Data coord
  • Data node

第三方依赖

  • etcd 负责存储集群中各组件的元数据信息。
  • MinIO 负责处理集群中大型文件的数据持久化,如索引文件和全二进制日志文件。
  • Pulsar 负责管理近期更改操作的日志,输出流式日志及提供日志订阅服务。

网络异常,图片无法展示
|


Milvus 应用场景

你可以使用 Milvus 搭建符合自己场景需求的向量相似度检索系统。Milvus 的使用场景如下所示:

  • 图片检索系统:以图搜图,从海量数据库中即时返回与上传图片最相似的图片。
  • 视频检索系统:将视频关键帧转化为向量并插入 Milvus,便可检索相似视频,或进行实时视频推荐。
  • 音频检索系统:快速检索海量演讲、音乐、音效等音频数据,并返回相似音频。
  • 分子式检索系统:超高速检索相似化学分子结构、超结构、子结构。
  • 推荐系统:根据用户行为及需求推荐相关信息或商品。
  • 智能问答机器人:交互式智能问答机器人可自动为用户答疑解惑。
  • DNA 序列分类系统:通过对比相似 DNA 序列,仅需几毫秒便可精确对基因进行分类。
  • 文本搜索引擎:帮助用户从文本数据库中通过关键词搜索所需信息。
相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
1天前
|
运维 Cloud Native 持续交付
构筑未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第29天】 随着企业数字化转型的深入,传统的IT架构已不能满足市场快速变化的需求。本文探讨了云原生架构如何成为支持企业敏捷性、可扩展性和创新能力的关键因素。通过分析云原生的核心组件,如容器化、微服务和持续集成/持续部署(CI/CD),揭示了其在提高运维效率、降低成本以及加速产品上市时间方面的显著优势。文章还讨论了实施云原生的最佳实践和面临的挑战,为希望利用云原生技术推动业务发展的决策者提供指导。
|
1天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在企业数字化转型中的关键角色
【5月更文挑战第29天】 随着企业加速迈向数字化,云原生技术以其独特的灵活性、可扩展性和敏捷性成为支撑企业转型的重要力量。本文将深入探讨如何通过云原生架构实现资源的最优配置,支持快速迭代与创新,并确保企业在不断变化的市场中保持竞争力。我们将分析云原生的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)等,并讨论其如何助力企业实现敏捷运营和DevOps实践的深度融合。
|
1天前
|
Cloud Native 持续交付 云计算
构建未来:云原生架构在现代业务中的应用与挑战
【5月更文挑战第29天】 随着数字化转型的不断深化,企业对于敏捷性、可扩展性和成本效益的需求日益增长。云原生架构作为一种新兴的技术范式,以其独特的设计理念和运作模式,正成为推动业务创新和实现技术优势的关键力量。本文将深入探讨云原生技术的基本原理,分析其在各行各业中的实际应用案例,并讨论在采纳云原生过程中可能遇到的挑战及解决策略,旨在为读者提供一个全面而深入的视角,以理解和利用云原生架构的潜力。
|
1天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第29天】 随着企业加速其数字化转型的步伐,云原生架构已成为推动创新与实现敏捷性的关键技术。本文深入探讨了云原生技术如何助力企业构建灵活、可扩展的系统架构,以及这些技术如何促进持续集成和持续部署(CI/CD),提高系统的可靠性和安全性。通过分析微服务、容器化、服务网格和无服务器计算等核心概念,揭示了云原生架构如何为企业提供竞争优势,同时指出实施过程中可能遇到的挑战及解决策略。
|
1天前
|
弹性计算 Cloud Native 安全
构建未来:云原生架构在现代企业中的应用与挑战构筑未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第29天】 随着数字化转型的浪潮席卷全球,企业对IT基础设施的要求日益提高。云原生技术作为一种新兴的软件部署和运行方式,以其灵活性、可扩展性和资源高效性成为推动企业创新的重要力量。本文将深入探讨云原生架构的核心组件、实施策略以及在实际应用中所面临的挑战,旨在为企业提供构建和维护云原生环境的洞见。
|
1天前
|
Cloud Native 持续交付 云计算
构建未来:云原生架构的转变与创新
【5月更文挑战第29天】 在数字化转型的浪潮中,企业正迅速采纳云原生技术以实现敏捷性、可扩展性和弹性。本文将探讨云原生架构的基本概念、关键技术和实施策略,旨在为读者提供一个关于如何利用云原生实践来优化业务操作和加速产品上市时间的视角。通过分析微服务、容器化、持续集成/持续部署(CI/CD)以及无服务器计算等技术的应用,我们将阐述如何在现代云计算环境中构建和维护高效、灵活且响应迅速的系统。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键角色
【5月更文挑战第29天】 随着企业加速数字化进程,云原生技术以其灵活性、可扩展性和敏捷性成为支持复杂业务场景的重要基石。本文深入探讨了云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps实践,并分析了这些技术如何共同促进企业的快速迭代和市场响应。通过实际案例分析,文章揭示了企业在采纳云原生技术时面临的挑战和克服策略,以及这些技术如何帮助企业实现真正的业务价值。
|
1天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在企业数字化转型中的关键角色
【5月更文挑战第29天】 在当今数字化浪潮中,企业面临着快速适应市场变化和持续创新的压力。云原生架构作为一种新兴的IT组织方法,以其独特的灵活性、可扩展性和敏捷性,成为推动企业转型的重要技术支撑。本文将探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,并分析这些技术如何协同工作以支持企业的敏捷开发和自动化运维需求。通过深入剖析云原生架构的优势及其在不同行业中的应用案例,本文旨在为读者提供一个关于如何利用云原生技术实现业务目标和技术革新的综合视角。
|
1天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构的进化之路
【5月更文挑战第29天】 在数字化转型的浪潮中,企业对技术的敏捷性、可扩展性和成本效率提出了更高的要求。云原生技术以其独特的优势应运而生,成为推动现代应用开发和运维模式变革的关键力量。本文将探讨云原生架构的核心组件、实施策略以及面临的挑战,为企业如何利用云原生技术构建更加动态和弹性的业务环境提供参考。
|
1天前
|
Cloud Native 持续交付 云计算
构建未来:云原生架构的进化之路
【5月更文挑战第29天】 随着数字化转型的浪潮不断涌动,企业对于信息技术基础设施的需求日益增长。云原生技术以其独特的灵活性、可扩展性和敏捷性成为支撑现代应用开发的基石。本文将深入探讨云原生架构的关键组成部分,包括容器化、微服务、持续集成/持续部署(CI/CD)以及无服务器计算,并分析这些技术如何共同塑造着云计算的未来。同时,文章还将讨论在采纳云原生实践中面临的挑战和克服这些挑战的策略。

热门文章

最新文章

http://www.vxiaotou.com