标签 raft 下的文章

Raft论文读书笔记


Raft是当前分布式领域最重要的一致性算法之一,今天我们就来好好研究研究这个算法的论文, 还有对应网站, 动画, 不想看英文的也有中文的翻译,所以我这边就不翻译了,主要还是记录一下论文重点和自己的心得。

Raft算法作者的初衷是对标Paxos算法(过去十年分布式一致性的事实标准),但是要比它更易理解,主要手段有:

  1. 分解,把整个一致性问题拆分为Leader选举日志复制安全机制三大方面还有角色改变这个小方面。所以模块化是一个软件系统可维护、理解和扩展的不二手段。
  2. 减少状态空间的状态,相比于Paxos,Raft减少了非确定性和服务器之间可以处于不一致的方式。所以在复杂的问题上做减法,可以减少很多不必要的繁琐的步骤。

Raft使用了更强的Leader,感觉这和我之前看的OceanBase是相似的,就是增强Leader(UpdateServer)或者说单点的作用,加重中心化(这也是社会的运作方式,没有Leader就是大家一盘散沙,文明是达不到今天这个程度的),要做决策就先选择一个Leader,然后让他去协调所有的决议,会更加简单快速,而Paxos就是P2P或者说弱Leader的方式。事实上,我们之所以使用分布式系统也是迫不得已,如果单台机器能搞定还要这么多系统干嘛?所以我们也要看到单点系统的好处,那就是一致性很容易保证,所以在分布式系统中使用一个增强(能力和责任)的单点既利于一致性的保证也能获得分布式的优势。