XA兩階段提交協議

2021-07-05 12:41:59 字數 1017 閱讀 1651

因為事務需要實現acid,即原子性、一致性、隔離性、永續性,所以需要採用一定的機制來保證,通常採用的是分階段提交的方式。

xa:xa協議,規定事務管理器和資源管理器介面,採用二階段提交協議。

一階段提交協議相對簡單,如下圖:

當然,前提是開啟了事務,然後在應用程式發出提交/回滾請求後,資料庫執行操作,而後將成功/失敗返回給應用程式,程式繼續執行。

一階段提交協議相對簡單,簡單帶來的優點就是,它不用再與其他的物件互動,節省了判斷步驟和時間,所以在效能上是在階段提交協議中對好的。

一階段提交協議有其優點,但缺點也很明顯:

所以在一階段協議的基礎上,有了二階段協議,二階段協議的好處是新增了乙個管理者角色,如下:

應用程式呼叫了事務管理器的提交方法,此後第一階段分為兩個步驟:

第二階段也分為兩個步驟:

事務管理器接受訊息後,事務結束,應用程式繼續執行。

為什麼要分兩步執行?一是因為分兩步,就有了事務管理器統一管理的機會;二盡可能晚地提交事務,讓事務在提交前盡可能地完成所有能完成的工作,這樣,最後的提交階段將是耗時極短,耗時極短意味著操作失敗的可能性也就降低。

同時,二階段提交協議為了保證事務的一致性,不管是事務管理器還是各個資源管理器,每執行一步操作,都會記錄日誌,為出現故障後的恢復準備依據。

二階段提交協議的存在的弊端是阻塞,因為事務管理器要收集各個資源管理器的響應訊息,如果其中乙個或多個一直不返回訊息,則事務管理器一直等待,應用程式也被阻塞,甚至可能永久阻塞。

XA,兩階段提交和X Open協議

xa和兩階段提交 分布式事務處理是指乙個事務可能涉及多個資料庫操作,分布式事務處理的關鍵是必須有一種方法可以知道事務在任何地方所做的所有動作,提交或回滾事務的決定必須產生統一的結果 全部提交或全部回滾 x open組織 即現在的open group 定義了分布式事務處理模型。x open dtp模型...

兩階段提交協議

閱讀次數 142次 類別 我的文章 永久鏈結 trackback 實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元件來控制。實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元...

兩階段提交協議

兩階段提交協議 實現分布式事務的關鍵就是兩階段提交協議。在此協議中,乙個或多個資源管理器的活動均由乙個稱為事務協調器的單獨軟體元件來控制。此協議中的五個步驟如下 應用程式呼叫事務協調器中的提交方法。事務協調器將聯絡事務中涉及的每個資源管理器,並通知它們準備提交事務 這是第一階段的開始 為 了以肯定的...