兩階段提交的協議大家都比較熟悉了,解釋一下每個階段的異常處理。首先,我們需要持久化協議過程中的狀態,這樣如果server宕機,那麼恢復的時候還能通過日誌知道宕機前處於那個階段。同時,所有對資料的修改都會先寫write ahead log,保證宕機重啟的之後資料也不會丟失。寫日誌的順序假定為:寫write ahead log-修改緩衝區-寫commit/abort log。
在這個前提下,我們根據如下的時序圖來討論異常情況和處理方法。
兩階段提交協議時序
過程a沒有成功,即協調者沒有收到部分參與者的回應。超時後,協調者傳送abort訊息給參與者取消事務。參與者存在兩種情況:
過程b沒有成功,即協調者傳送commit訊息之後沒有收到部分參與者的回應。協調者需要重試,確認參與者的提交完畢訊息,如果多次嘗試不能聯絡上,則等待參與者上線之後解決。參與者存在兩種情況:
過程c沒有成功,即參與者傳送vote回應訊息之後沒有等到協調者的commit/rollback訊息。這個過程參與者的異常處理已經討論過了,這裡討論協調者的異常處理。存在兩種情況:
[1] 兩階段提交(2pc)協議,
兩階段提交協議的異常處理
詳見 兩階段提交的協議大家都比較熟悉了,解釋一下每個階段的異常處理。首先,我們需要持久化協議過程中的狀態,這樣如果server宕機,那麼恢復的時候還能通過日誌知道宕機前處於那個階段。同時,所有對資料的修改都會先寫write ahead log,保證宕機重啟的之後資料也不會丟失。寫日誌的順序假定為 寫...
兩階段提交協議
閱讀次數 142次 類別 我的文章 永久鏈結 trackback 實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元件來控制。實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元...
兩階段提交協議
兩階段提交協議 實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元件來控制。此協議中的五個步驟如下 應用程式呼叫事務協調器中的提交方法。事務協調器將聯絡事務中涉及的每個資源管理器,並通知它們準備提交事務 這是第一階段的開始 為 了以肯定的...