TiKV 增加Peer的过程中,目标Store是如何收到的消息?

我看TiKV add peer 的动作是通过confchange消息,同步到现有的raft组里。然后现有的raft组内的leader应用的时候,会在region信息里增加一个peer。

但是目标store怎么增加的一个peer? 帮忙介绍下流程,然后贴一下代码位置,谢谢。

心跳触发的,leader 完成 confchange 之后会给新 peer 所在的 tikv 发送心跳,目标 store 收到心跳后发现本地没有这个 region 就会创建一份,然后从 leader 同步 snapshot。具体代码我就不找了,给你留作业哈哈。

1 Like

流程捋清楚了:
confchange搞定后,现有的3个peer全都apply了。leader开始发心跳,心跳消息走到新的tikv上时,新的tikv在这里会走try_send,结果router里面没有对应的fsm,就转换成control消息,由storefsm处理

1 Like