我对实现 RAFT 有以下疑问:
考虑以下场景\实现:
- RAFT 领导者收到一个命令条目,它将条目附加到内存数组中,然后将条目发送给跟随者(带有心跳)
- 追随者接收条目并将其附加到他们的内存数组中,然后发送响应它已收到条目
- 然后领导者通过将条目写入持久存储(文件)来提交条目领导者在心跳中发送最新的提交索引
- 追随者然后通过将条目存储到他们的持久存储(文件)来根据领导者的提交索引提交条目
RAFT 的实现之一(链接:https ://github.com/peterbourgon/raft/ )似乎以这种方式实现它。我想确认这是否正常。
如果条目由领导者和追随者“在内存中”维护,直到它被提交,是否可以?在什么情况下这种情况可能会失败?