5

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

需要多少(百分比)节点才能达成一致/共识?

4

1 回答 1

14

不,Raft 的最初描述(由 Diego Ongaro 和 John Ousterhout (1)提出)不是拜占庭容错的。

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

许多其他场景,比如发送虚假但有效的心跳消息也是表明 Raft 不是拜占庭容错的例子。

然而,有几篇论文介绍了 Raft 的拜占庭容错版本(2)


为了达成共识,Raft 需要大多数节点都处于活动状态 - > 50%.

这意味着为了容忍t故障,仍然必须有t+1节点正常工作。

因此,2t+1节点需要具有t-resilient ,这是在存在部分同步 (3)的情况下达成共识所需的最少节点数量,并且只能容忍遗漏失败。

于 2018-04-06T09:23:27.473 回答