2 一致性協議

目錄

1 2PC和3PC

1.1 2PC

1.2 3PC

2 Paxos算法

2.1算法原理

2.2算法執行過程


1 2PC和3PC

1.1 2PC

大家不要將兩階段提交想的複雜,事實上,這個協議很簡單,prepare階段參與者只是執行事務,但不提交,此時已能知道能否成功執行,並將此狀態反饋給協調者。協調者收到都成功,則通知所有參與者commit。若只要有一個反饋失敗,則通知所有參與者rollback。協調者在commit階段發出commit或rollback通知後就不管了。

2PC兩階段提交協議

1.2 3PC

3PC主要解決的單點故障問題,並減少阻塞

  1. 引入超時機制。同時在協調者和參與者中都引入超時機制。

  2. 在第一階段和第二階段中插入一個準備階段。保證了在最後提交階段之前各參與節點的狀態是一致的

2PC和3PC

2 Paxos算法

2.1算法原理

分佈式理論:深入淺出Paxos算法

Paxos要實現的目標的是:

T1.一次選舉必須要選定一個議案(不能出現所有議案都被拒絕的情況)
T2.一次選舉必須只選定一個議案(不能出現兩個議案有不同的值,卻都被選定的情況)

Paxos算法的必須要能滿足:

P1:一個Acceptor必須接受它收到的第一個議案。

P2:如果一個值爲v的議案被選定了,那麼被選定的更大編號的議案,它的值必須也是v。

爲滿足P2:

要求提出議案符合P2c:

在所有Acceptor中,任意選取半數以上的Acceptor集合,我們稱這個集合爲S。Proposal新提出的議案(簡稱Pnew)必須符合下面兩個條件之一:
  1)如果S中所有Acceptor都沒有接受過議案的話,那麼Pnew的編號保證唯一性和遞增即可,Pnew的值可以是任意值。
  2)如果S中有一個或多個Acceptor曾經接受過議案的話,要先找出其中編號最大的那個議案,假設它的編號爲N,值爲V。那麼Pnew的編號必須大於N,Pnew的值必須等於V。

2.2算法執行過程

 

發佈了170 篇原創文章 · 獲贊 11 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章