雙階段提交

雙階段提交是將對數據的寫入分解為兩個階段,每個階段結束都有一個完成的驗證。

事務處理的特徵是,當事務沒有完成時(例如,由於沒有足夠的資金或缺少擔保,或由於電源失效或通信鏈路失效而沒有完成時),具有卷回這個事務的能力。一個事務要么被全執行完畢,要么被卷回,於是在被卷回時它又返回了這個事務前的狀態。事務監督器是一個監督執行過程的程式。當用戶執行一個事務時,就對資料庫進行了一些改變。如果這個用戶想放棄這個事務,事務監督器保證所有被影響的資料庫返回它們在這個事務前的狀態。 
在分散式環境,事務處理導致了許多複雜性。用戶可能需要訪問多個不同地點的資料庫,並且同時對多個資料庫進行修改。這些修改必須是相互一致的。例如,如果在一個銀行的多個支行保持了這個銀行的帳戶平衡,而出納對一個顧客的帳戶進行了修改,那么就必須同時在所有地點進行這一改變。如果在這個事務期間,到任何一個支行辦公室的計算機鏈路失效了,這個事務監督器必須知道這一情況,並通知所有其它支行這個事務沒有完成,並且要求卷回。用雙階段提交完成這個任務。 
雙階段提交是將對數據的寫入分解為兩個階段,每個階段結束都有一個完成的驗證。在下面的步驟中假設在這個事務中不出現故障: 
1.捲入這個事務的資料庫系統保留數據,以對記憶體中的數據進行驗證。 
2.事務監督器傳送一個“預驗證”命令到這個資料庫系統。 
3.資料庫系統應答它們已經準備好了進行驗證。 
4.在接聽到每個資料庫系統的應答後,事務監督器傳送一個“驗證”命令。 
5.資料庫系統應答它們成功地對數據進行了驗證。 
6.當事務監督器從所有資料庫系統接收到數據已經被成功地驗證的回響後,它完成這個事務。 
如果這個事務監督器在步驟3和5,從所有資料庫系統沒有聽到所需回響,這個事務監督器警告系統卷回它們的事務。

相關詞條

相關搜尋

熱門詞條

聯絡我們