Raft一致性算法是拜占庭容错(bft)算法吗?

时间:2018-04-06 07:02:19

标签: distributed-computing consensus raft

筏共识算法是拜占庭容错算法吗?

达成协议/达成共识需要多少(百分比)节点?

1 个答案:

答案 0 :(得分:5)

不,Raft的初步描述(来自Diego Ongaro和John Ousterhout (1)拜占庭容错。

想象一个节点在给定的术语中投票两次,或投票给另一个节点,该节点的日志不是最新的,就像它自己的节点一样,并且该节点成为领导者。这种行为可能导致 split-brains (两个节点认为自己是领导者的情况)或日志中的不一致。

许多其他方案(如发送虚假但有效的心跳消息)也是显示Raft不是拜占庭容错的示例。

然而,有几篇论文提出了拜占庭容错版的筏(2)

要达成共识,Raft需要多数的节点存活 - > 50%

这意味着为了容忍t个失败,仍有t+1个节点正常工作。

所以2t+1节点需要 t-resilient ,这是在部分同步 {{存在时达成共识所需的最小节点数量3}}只是容忍遗漏失败。