coord 是一个进程

node 也是一个进程

图片.png

比如一个 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 才能顶上去吗?


universe_king
3.4k 声望680 粉丝

引用和评论

0 条评论