iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
DevOps

中台化轉型系列 第 23

分散式資料庫:一致性協定

基於訊息傳遞的一致性協定,只能保證資料的「最終一致性」,都無法處理「拜占庭将军问题(Byzantine Generals Problem)」

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

上一篇
分散式資料庫:分散式策略
下一篇
大數據平台:技術架構 - 相關技術列舉
系列文
中台化轉型30

尚未有邦友留言

立即登入留言