Raft 算法是可以用來(lái)替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易實(shí)現(xiàn)。本文對(duì) raft 論文進(jìn)行翻譯,希望能有助于讀者更方便地理解 raft 的思想。如果對(duì) Paxos 算法感興趣,可以看我的另一篇文章:分布式系列文章——Paxos算法原理與推導(dǎo)

摘要

Raft 是用來(lái)管理復(fù)制日志(replicated log)的一致性協(xié)議。它跟 multi-Paxos 作用相同,效率也相當(dāng),但是它的組織結(jié)構(gòu)跟 Paxos 不同。這使得 Raft 比 Paxos 更容易理解并且更容易在工程實(shí)踐中實(shí)現(xiàn)。為了使 Raft 協(xié)議更易懂,Raft 將一致性的關(guān)鍵元素分開(kāi),如 leader 選舉、日志復(fù)制和安全性,并且它實(shí)施更強(qiáng)的一致性以減少必須考慮的狀態(tài)的數(shù)量。用戶研究的結(jié)果表明,Raft 比 Paxos 更容易學(xué)習(xí)。 Raft 還包括一個(gè)用于變更集群成員的新機(jī)制,它使用重疊的大多數(shù)(overlapping majorities)來(lái)保證安全性。

1 介紹

一致性算法允許多臺(tái)機(jī)器作為一個(gè)集群協(xié)同工作,并且在其中的某幾臺(tái)機(jī)器出故障時(shí)集群仍然能正常工作。 正因?yàn)槿绱?,一致性算法在建立可靠的大?guī)模軟件系統(tǒng)方面發(fā)揮了關(guān)鍵作用。 在過(guò)去十年中,Paxos [15,16] 主導(dǎo)了關(guān)于一致性算法的討論:大多數(shù)一致性的實(shí)現(xiàn)都是基于 Paxos 或受其影響,Paxos 已成為用于教授學(xué)生一致性相關(guān)知識(shí)的主要工具。

不幸的是,Paxos 實(shí)在是太難以理解,盡管許多人一直在努力嘗試使其更易懂。 此外,其架構(gòu)需要復(fù)雜的改變來(lái)支持實(shí)際系統(tǒng)。 結(jié)果是,系統(tǒng)開(kāi)發(fā)者和學(xué)生都在與 Paxos 斗爭(zhēng)。

在我們自己與 Paxos 斗爭(zhēng)之后,我們開(kāi)始著手尋找一個(gè)新的一致性算法,可以為系統(tǒng)開(kāi)發(fā)和教學(xué)

網(wǎng)友評(píng)論