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 協調者排程的這些節點就是參...