Nebula支持多副本机制的可靠性机制,内部对于副本数据损坏的识别和恢复机制是怎样的?

Nebula支持多副本机制,可以用来在集群中应对某个节点的磁盘损坏导致副本数据丢失的问题。
Nebula是如何检测副本数据丢失的,是定时检测所有副本的状态还是需要通过一些命令触发?
以下是一些验证过程,请各路大神帮忙解答下:
1、3个节点部署nebula集群(为node1,node2,node3),创建图空间为3副本方式,并插入部分数据
2、执行leader和data balance后正常执行查询等操作
3、手工在node3节点上将将图空间数据删除,如下图所示
image
4、接下来大概10-20分钟时间leader的分布会发生变化
删除前leader会均匀一些,如下图:


10-20分钟后,如下图:

5、以上在node3上没有自动恢复删除的图空间文件(名称为27的文件夹)
6、执行SUBMIT JOB FLUSH;命令,会出现node3节点失败


7、失败后,大概3分钟内就会在node3节点上将删除的27图空间数据副本恢复。如下图27文件夹图空间副本自动恢复
image

因此,想了解下nebulagraph在副本数据丢失或损坏时,检测机制、检测时间和恢复机制大致是怎样的?

nebula靠raft协议来维护副本的数据一致性,建议了解下raft协议日志复制的原理。

raft复制机制正在学习。本问题中更多的是想了解什么触发条件才会识别到副本丢失?
因为我删除文件后,系统如果不进行操作,很长一段时间都不会进行副本恢复,而当执行submit job flush后,系统检测到文件写盘失败(推测是此操作触发了nebula识别到有副本丢失),才开始进行恢复的?

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。