參考
分布式系統
多個節點之間的兩種通訊模型:共享記憶體、訊息傳遞。
paxos演算法是基於訊息傳遞的。paxos的前提假設是不存在拜占庭將軍問題,即:通道是安全的(通道可靠),發出的訊號不會被篡改,否則該演算法就不可靠。
如何保證訊息沒被篡改:數字簽名等、
paxos能達成一致的原因:過半數學原理: 我們稱大多數(過半)程序組成的集合為法定集合,兩個法定(過半)集合必然存在非空交集,即至少有乙個公共程序,稱為法定集合性質。
因此,當超過一半的accepter接受某個提案a1後,proposer再向多於半數的accepter傳送prepare請求時,至少包含乙個accepter是已經接受了上述提案a1的,proposer的第二階段的propose請求帶的value必定是a1,收到a1的這些accepter中,原本acceptv是null或者更小提案編號對應的值的被變更為a1。後面所有proposer發起請求都得到超過半數的a1的accept,所有accepter的值也達到一致。
活鎖問題:乙個proposer在第二階段未accept之前,有另乙個proposer傳送新的prepare請求,那麼前乙個一定會失敗,因為超過半數的accepter的id已更新,前面的proposer不可能得到超過半數的accept。
解決辦法:通過選取主proposer,就可以保證paxos演算法的活性。選擇乙個主proposer,並規定只有主proposer才能提出議案。這樣一來,只要主proposer和過半的acceptor能夠正常進行網路通訊,那麼肯定會有乙個提案被批准(第二階段的accept),則可以解決死迴圈導致的活鎖問題。
共識演算法(三) Raft(分布式一致性演算法)
raft替代了paxos 太複雜 並提供了一種在計算系統集群中分布狀態機的通用方法,確保集群中的每個節點都同意一系列相同的狀態轉換,也就是說,它在提供的計算機集群分布狀態機時,有個別或者多個狀態機down掉了,從而使其狀態不統一並影響了consensus一致性,繼而影響了整個系統的執行,而raft演...
分布式一致性演算法
補習了一下分布式相關知識,嗯,還是有很些不懂地方,閱讀不少不錯資源,記錄一下有時間回頭再讀。分布式儲存的強一致性實現方式 1.quorum w r n 2.同步複製 如 pacifica 3.複製狀態機 分布式一致性協議paxos raft zab等 學習分布式系統需要怎樣的知識?cse 552 f...
分布式系統的Raft演算法 一致性演算法
原文出處 過去,paxos一直是分布式協議的標準,但是paxos難於理解,更難以實現,google的分布式鎖系統chubby作為paxos實現曾經遭遇到很多坑。來自stanford的新的分布式協議研究稱為raft,它是乙個為真實世界應用建立的協議,主要注重協議的落地性和可理解性。在了解raft之前,...