2段提交和3段提交分析

2022-04-02 17:04:21 字數 805 閱讀 5828

note left of coordinator: voting phase

coordinator->cohort1: query

coordinator->cohort2: query

cohort1-->coordinator: yes/no

note right of cohort1: prepare/abort

cohort2-->coordinator: yes/no

note right of cohort2: prepare/abort

note left of coordinator: commit phase

coordinator->cohort1: commit/rollback

coordinator->cohort2: commit/rollback

cohort1-->coordinator: acknowledgment

note right of cohort1: commit/abort

cohort2-->coordinator: acknowledgment

note right of cohort2: commit/abort

協作者給各個執行者傳送提交請求;

執行者接收到提交請求,開始執行事務,雙方記錄回滾和重試日誌;

執行者執行完事務,通知協作者是否可以執行提交,掛起資源等待協作者的通知;

協作者接收到所有的執行者的通知以決定發起提交或回滾請求;

每個執行者完成協作者的指令,釋放資源;

協作者等待所有的執行者的 ack 後完成事務;

二段提交協議 三段提交協議

1 二段提交協議 2pc提交事務階段 投票階段 協調者發起事務請求到所有的參與者,參與者接收到事務請求後判斷自身情況,如果不能執行事務,則反饋不能提交事務,返回no,如果可以就執行事務,並將undo和redo資訊記錄事務日誌中,反饋yes 執行事務階段 協調者收到所有參與者反饋yes就發布commi...

二段提交協議與三段提交協議

第一階段 準備階段 協調者向參與者發起指令,參與者評估自己的狀態,如果參與者評估指令可以完成,則會寫redo或者undo日誌,讓後鎖定資源,執行操作,但並不提交。第二階段 如果每個參與者明確返回準備成功,則協調者向參與者傳送提交指令,參與者釋放鎖定的資源,如何任何乙個參與者明確返回準備失敗,則協調者...

二階段提交協議,三階段提交協議

其實三者都是為了解決分布式一致性問題而存在的協議和演算法。首先先來了解幾個概念。協調者 coordinator 在分布式系統中,當事務操作需要跨越多個分布式節點的時候,為了保持分布式處理的acid特性,需要引入它來統一排程所有節點的執行邏輯。參與者 participant 協調者排程的這些節點就是參...