coord 是一个过程
node 也是一个过程
比方一个 datanode 要承受来自内部的写入,写入都须要通过 datacoord 转发给 datanode 吗?
相干文档:https://milvus.io/docs/four_layers.md
Q:milvus 的 coord 和 node 是什么关系?
比方一个 datanode 要承受来自内部的写入,写入都须要通过 datacoord 转发给 datanode 吗?
A:在 Milvus 中,coord 和 node 是指不同的组件。coord 是协调节点,次要负责协调集群中不同组件之间的通信,例如 indexcoord、datacoord 和 querycoord 之间的协调。而 node 是数据节点,次要负责存储和治理数据。
在 Milvus 中,数据写入操作须要先通过 datacoord 进行转发,而后由具体的 datanode 进行接管和解决。datacoord 负责管理数据的划分和调配,决定哪个 datanode 应该接管哪些数据,并且把写入申请发送给相应的 datanode,最终实现数据的写入。因而,在进行数据写入时,数据须要通过 datacoord 的转发,而后由相应的 datanode 进行接管和解决。
kafka 或者 pulsar 在 Milvus 中次要作为音讯队列,用于数据的异步写入。在数据写入时,Milvus 首先将写入申请发送给 pulsar 或者 kafka,而后再通过 datacoord 转发给相应的 datanode 进行接管和解决。通过这种形式,Milvus 实现了数据的异步写入,进步了数据写入的效率和吞吐量。
Q:milvus 的 coord 是单点的吗?
比方对于 datacoord 和 datanode,datanode 能够有多个,datacoord 也能够有多个吗?
A:在 Milvus 中,每个 Coord 节点都是单点的,也就是每个 Coord 只有一个实例在运行。然而,每个 Coord 类型的节点都能够有多个实例,以进步零碎的可用性和性能。
在 Milvus 2.x 中,能够有多个 DataCoord 实例和多个 IndexCoord 实例来进步零碎的可用性和性能。多个 DataCoord 实例独特负责写入数据,并通过相互之间的协调来保证数据一致性。多个 IndexCoord 实例独特负责管理索引,并通过相互之间的协调来保障索引一致性。
对于 QueryCoord,它是作为查问的入口节点,每个查问申请都须要通过 QueryCoord 进行路由和调度。目前 Milvus 中只反对一个 QueryCoord 实例。
milvus2.x 的 Coord 反对 HA 吗?怎么实现的?用的什么计划?
貌似是主备?为什么要用主备而不是正本?这套主备是怎么工作的?master 工作,master 挂了,slave 顶上去吗?master 工作的时候,slave 只能闲置看戏?如果 master 挂了,slave 要多久能力顶上去?(意思就是如何实现 slave 发现 master 挂了的,并且晋升本人?)要多久?一纳秒?一毫秒?一秒钟?或者一分钟 slave 能力顶上去吗?