RAFT:运行过程中Leader改变会发生什么

RAFT: What happens when Leader change during operation

我想了解以下场景:

这算不算operation/request的失败?或者它应该 return "Leader Change"

这是一个不确定的结果,因为我们当时不知道该值是否会被提交。也就是说,新领导者可以决定保留或覆盖该值;我们只是没有要知道的信息。


在我维护的一些系统中,下层系统(共识层)为每个请求给出了两个成功结果。它首先 returns Accepted 当领导者将它放入其日志时,然后 Committed 当该值被充分复制时。

Accepted 结果意味着值 可能会 稍后提交,但可能不会。

包裹共识层的层对于客户端的 return 值可以更智能一些。他们对系统有更广阔的视野,并且可能会重试请求 and/or 向新领导询问有关价值的信息。这样整个系统就可以有习惯的 single return 值。