基於訊息傳遞的一致性協定,只能保證資料的「最終一致性」,都無法處理「拜占庭将军问题(Byzantine Generals Problem)」
- 流言(Gossip)
從選定的種子節點開始,隨機選擇鄰近的節點進行資料散播,接收到資料的節點重複這個步驟直至全域散播完成。
- 共識(Consensus)
- Paxos
分散式一致性協定的理論基礎,每次交易都需要經過 Prepare 和 Accept 及多次節點間的資料傳輸,有較低的資料處裡量能以及交易間「活鎖(Livelock)」的問題。
- Multi-Paxos
將 Paxos 的交易簡化為一階段,提高了系統效能,是目前叢集管理、分散式資料庫主要採用的分散式協定。
- Raft
透過確保叢集內的任意節點的狀態轉換一致性以及「領袖(Leader)選舉」共識演算法對 Multi-Paxos 進行了簡化。
- 分散式交易(Distributed Transactions)
「跨系統」的交易(Transaction)所造成的資料一致性問題,沒有有效的完美解決方案,多階段提交容易很大程度的提升系統複雜度。
- 二階提交協定(Two Phase Commitment Protocol)
- 「協調者(Coordinator)」指揮所有「參與者(Participants)」***紀錄交易操作(Undo、Redo)***並回覆"同意"或"終止"交易
- 「協調者」指揮所有「參與者」"提交(Commit)"或"回滾(Rollback)"
- 三階提交協定(Three Phase Commitment Protocol)
- 「協調者」指揮所有「參與者」回覆"同意"或"終止"交易
- 「協調者」指揮所有「參與者」紀錄交易操作(Undo、Redo)
- 「協調者」指揮所有「參與者」"提交(Commit)"或"回滾(Rollback)"