【數據庫之美】兩階段提交協議

由於涉及多個分佈式的數據庫,我們特設了一個全局的事務管理器,他來負責協調各個數據庫的事務提交,爲了實現分佈式事務,需要兩個階段。
在這裏插入圖片描述

階段一:

全局的事務管理器向各個數據庫發出準備消息, 各個數據庫需要在本地把一切都準備好,執行操作,鎖住資源。記錄redo/undo日誌,但是並不提交,總而言之,要進入一種時刻準備提交或回滾的狀態,然後向全局的事務管理器報告是否準備好了

階段二:

如果所有的數據庫都報告說準備好了,那麼全局的事務管理器就下命令,提交,這個時候,各個數據庫才真正提交,由於之前已經萬事俱備,所以只需要快速完成提交即可。
如果有任何一個數據庫報告說沒準備好,那麼全局的事務管理器就下命令,放棄,這時候,各個數據庫要執行回滾操作,並且釋放在階段1鎖住的各種資源。

對於多數據下的系統 兩階段提交協議就是一個性能瓶頸,進一步演化就是使用最終一致性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章