土法炼钢兴趣小组的算法知识备份

【向量检索引擎】Proxy 与 Coordinator:接入面、TSO 与集群大脑

文章导航

分类入口
databasestorage
标签入口
#milvus#proxy#coordinator#tso#access-layer#mpp#vector-engine

目录

第 1 篇 给出四层地图;第 3 篇第 5 篇 把数据面落到 Channel / Streaming Node。控制面仍缺两块:无状态 Proxy 如何成为唯一对外入口,以及 单活跃 Coordinator 如何持有拓扑、时间戳与调度

本文依据官方 Architecture Overview / Storage/Computing Disaggregation(四层)、Timestamp 文档,钉住 Access Layer 与 Coordinator 的职责清单。不展开一致性四级语义的产品用法全文(第 12 篇),不展开 Data Node 任务内部(第 10 篇)。

本文是「向量检索引擎」系列第 4 篇(共 18 篇)。→ 系列目录

版本锚定:Milvus 2.6.x


一、Access Layer:无状态 Proxy

官方四层文档对 Access Layer 的定义:

结合 Architecture 的 API 路径表:

类别 经 Proxy 之后 含义
DDL/DCL → Coordinator schema / 权限类必须进大脑
DML → Streaming Node 写入走 WAL 绑定的流节点
DQL → Streaming Node(再协同 Query Node) 查询入口在流侧 Delegator(见第 7、9 篇)

Proxy 因此同时具备三种角色:协议边界(SDK/REST → 内部 RPC)、路由缓存持有者(Architecture:优先用 routing cache,缺缓存才问 Coordinator)、最终归并器(跨 shard 的 Top-\(k\) / query 结果)。

无状态的直接后果:扩 Proxy 副本不迁移本地段数据;会话亲和性不是正确性前提。代价是:每次 search 的最终 reduce 压在 Proxy CPU/内存上——超大 topk、高并发时要把 Proxy 当成独立容量维度(第 17 篇排障)。


二、Coordinator:集群大脑

官方表述:Coordinator 是 Milvus 的大脑;任一时刻全集群恰好一个活跃 Coordinator,负责维护拓扑、调度各类任务、承诺集群级一致性相关职责。

任务清单(官方列举):

职责域 内容 本系列衔接
DDL/DCL/TSO 创建/删除 Collection、Partition、Index;管理 TSO 与 time ticker 第 5 篇 Message 顺序;第 12 篇一致性
Streaming 管理 绑定 WAL 与 Streaming Node;流服务发现 第 5 篇 Streaming Coordinator
Query 管理 Query Node 拓扑与负载均衡;维护 serving query views 指导路由 第 7、9、14 篇
历史数据管理 向 Data Node 分发 compaction / 建索引;管理 segment 与 data view 拓扑 第 6、10 篇;handoff

Worker(Streaming / Query / Data)被描述为 dumb executors:听 Coordinator 指令执行;因存算分离而可无状态扩缩(四层文档)。

flowchart LR
  proxy["Proxy"]
  coord["Coordinator<br/>single active"]
  sn["Streaming Node"]
  qn["Query Node"]
  dn["Data Node"]
  proxy -->|"DDL/DCL"| coord
  proxy -->|"DML/DQL"| sn
  coord --> sn
  coord --> qn
  coord --> dn

2.1 为什么是「单活跃」大脑

拓扑、TSO、query view、离线任务队列若多主并发写,容易出现双视图。官方选择 单活跃 Coordinator,用元存储(etcd)支撑高可用元数据与服务注册(四层 · Meta storage)。故障时切换活跃实例属于运维面;客户端经 Proxy 的 Wait for Ready / 重试与 WAL 迁移窗口类似(第 5、14 篇)。

2.2 MixCoord 合并(阅读提示)

部分发行说明与博客提到将历史上拆分的 Root/Data/Query Coord 合并为更简单的协调服务(常称 MixCoord)。本系列以 2.6.x 文档中的「Coordinator」职责表为准;源码目录名可能仍保留历史分包。读源码时按职责(TSO、segment 拓扑、任务调度)检索,不要被旧组件名绑死。


三、TSO 与时间戳:控制面提供的全序原料

Timestamp 文档:DML(插入/删除)会为涉及的实体赋时间戳;同一批 DML 共享同一时间戳值。Streaming 侧 Message 的 TSO 字段决定 WAL 内顺序(第 5 篇)。

对查询侧,官方引入若干时间戳相关概念(产品层多通过 一致性级别 间接配置,用户通常不手写原始 TSO):

概念 含义(官方)
Guarantee_timestamp 保证该时刻之前的 DML 更新在本次 search/query 中可见;未配置时默认取请求发起时刻
Service_timestamp 由查询数据面维护,表示其已完成执行的 DML 时间线进度
Graceful_time 配置项:可容忍的短暂不可见窗口;与 Guarantee/Service 比较决定是否立即执行或等待

Service_timestamp(加可选 Graceful_time)尚不满足 Guarantee_timestamp 时,查询侧 推迟 执行,避免在不完整视图上搜(Timestamp 文档 Scenario 描述)。一致性四级(Strong / Bounded / Session / Eventually)如何映射到 GuaranteeTs,见官方 Consistency Level 与第 12 篇;本篇只钉住:时间语义的权威原料来自 Coordinator 管理的 TSO 体系,查询可见性用 Guarantee/Service 比较落地。

注意:Consistency 文档的示意图仍用「QueryNode 同时收 batch/streaming」的叙述;在 2.6 架构 下 Growing 由 Streaming Node 持有、Sealed 由 Query Node 持有(Data Processing)。读文档时把「查询数据面的 ServiceTime」理解成 参与该次 search 的执行节点所推进的可见水位,具体拼装路径以第 7、9 篇为准。


四、Query view 与路由

Coordinator 的 Query 管理职责包括提供 serving query views 指导路由(Architecture / 四层)。结合 Proxy「routing cache,缺则问 Coordinator」:

  1. handoff / 负载均衡改变「哪个 Query Node 持有哪些 Sealed」;
  2. Coordinator 更新可服务视图;
  3. Proxy / Delegator 按视图把历史检索打到正确节点。

若视图滞后,会出现「段已 flush 但查询仍只打 Growing」或「打到未加载节点」类症状——排障时区分 控制面视图Worker 本地加载状态(第 14、17 篇)。


五、学术谱系与工程间隙

5.1 谱系

阶段 对照
经典分布式 DBMS 单一协调者 / master 管元数据与调度
存算分离云数据库 无状态计算 + 共享存储;协调者管拓扑
Milvus 2.6.x Proxy(MPP reduce)+ 单活跃 Coordinator(TSO/拓扑/任务)+ 三类 Worker

Wang et al. (SIGMOD 2021) 已强调分布式与动态更新;2.x/2.6 把协调职责收束到文档化的 Coordinator 任务表,并把流批 Worker 拆开。

5.2 工程间隙

5.3 开放问题

  1. 超大规模下单 Coordinator 的任务队列与 segment 元数据规模上限?
  2. Proxy 最终 reduce 是否应下沉到两级树形归并以降低单点带宽?
  3. routing cache 的失效策略如何在正确性与 Coordinator QPS 之间自动调参?

六、小结

Proxy 是无状态接入与 MPP 最终归并;Coordinator 是单活跃大脑,握住 DDL、TSO、Streaming 绑定、query view 与离线任务。Worker 执行,不决定集群真值视图。下一篇看持久化形态:对象存储上的 Segment 布局


参考资料

  1. Milvus Documentation v2.6.x, Architecture OverviewStorage/Computing Disaggregation(四层、Coordinator 任务、Object/Meta/WAL 存储)。
  2. Milvus Documentation v2.6.x, Timestamp(Guarantee / Service / Graceful)。
  3. Milvus Documentation v2.6.x, Consistency Level(四级与 GuaranteeTs 映射;第 12 篇展开)。
  4. Wang et al., SIGMOD 2021。
  5. 第 1、3、5 篇系列 index

返回 系列目录 | 上一篇:Segment 状态机 | 下一篇:对象存储布局

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。


By .