前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Milvus 存算分离系列-1:milvus架构简介

Milvus 存算分离系列-1:milvus架构简介

作者头像
MrPresent-Han
发布2023-09-17 12:23:45
7040
发布2023-09-17 12:23:45
举报
文章被收录于专栏:数据库开发优化

前言

存算分离是一个很火的话题,基本上各个数据库都说自己已经实现,或者即将上线存算分离的架构。但事实上对于不同类型的数据系统,如何定义“存”和“算”是不同的。本系列会简介milvus的存算分离架构,结合具体问题场景聊一些作者对这个概念的看法。

Milvus 存算分离整体架构

由于向量查询的“重索引”“重计算”特型, milvus的存算分离有两层含义:

生成存储文件和查询计算的进程分离

如下图,整个milvus的读写流程是:

  1. proxy将msg写入message queue中(一般为kafka,pulsar,rocksmq)
  2. Datanode节点从message queue中消费msg,
  3. 生成对应的数据分片:segment,并上传到object storage上。
  4. mixCoord也就是协调节点收集生成的segment
  5. mixCoord指挥QueryNode节点加载对应的segment以供查询
milvus存算分离架构
milvus存算分离架构

所以从这个流程上看,生成存储文件的过程发生在DataNode上,而使用存储数据进行查询计算则发生在QueryNode上。两个过程互不干扰,可以分别进行弹性扩展。在查询计算密集的时段,可以扩展QueryNode的数量&&资源,在写入压力较大的时候,可以扩展DataNode节点&&资源

文件存储的位置和使用的位置分离

另一个层面的存算分离,则是数据存储位置(obect storage)和计算发生位置(QueryNode)的分离。milvus的segment是immutable的,所以天然地支持‘一写多读’。

那么Milvus是怎么对表格进行查询的呢?

Milvus分布式查询架构&&前置概念

首先明确几个概念:

  • Proxy:milvus查询代理,负责和client直接交互
  • QueryNode: milvus的worker node,查询真正发生的进程
  • QueryCoord: 查询协调节点,负责管理所有的QueryNode
  • Collection: Milvus集合,简单地可以裂解为数据库表
  • Segment: Milvus的Query Unit, 可以理解为Milvus的数据分片(类似kudu tablet, es-shard)
  • Delegator: 查询首领,负责汇总其所统领的Segment的查询结果
milvus分布式查询架构
milvus分布式查询架构

如上图中,可以认为单个Milvus collection有Segment1-5, 5个segment,分别分布在3个QueryNode节点上,其中Delegator分布在QueryNode2上,查询发生的流程如下:

  1. proxy向QueryCoord询问Milvus Delegator分布,得知该collection的delegator在querynode2上
  2. proxy向querynode2发送query request
  3. delegator收到request,将其转发给QueryNode1和QueryNode3上,获取所有segment得查询结果
  4. delegator汇总所有查询结果,返回给proxy

总结

本文从存算分离的角度,介绍了milvus的分布式架构。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Milvus 存算分离整体架构
    • 生成存储文件和查询计算的进程分离
      • 文件存储的位置和使用的位置分离
      • 那么Milvus是怎么对表格进行查询的呢?
      • Milvus分布式查询架构&&前置概念
      • 总结
      相关产品与服务
      向量数据库
      腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持千亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、自然语言处理等 AI 领域。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档