分布式資料庫考試總結要點 可靠性

2021-12-22 07:15:31 字數 2554 閱讀 6553

至少有乙個站點已收到結果命令,則該站點可以告知其它參與者關於該事務的結果,並由它們來終結該事務。

沒有乙個參與者收到命令,並且只有協調者故障時,參與者可以選舉乙個新的協調者,然後繼續。

問題:如果參與者發生故障,分布式事務不能終結

終結協議在協調者和參與者超時時發揮作用

超時發生在目的站點在期望的時間內沒有收到發

送站點傳送的訊息

超時時預設傳送站點失效

超時的處理依賴於失效時間和失效的型別

6、設計終結協議

在集中式通訊結構中,參與者間不能通訊,想終結的參與者必須等待協調者的決定,否則將一直等待(阻斷)。

在非集中式通訊結構中,可以設計分布式的終結協議。

(超時的參與者請求其他參與者來幫助作出決定)

假定pi是超時的參與者(詢問pj),其它pj按如下響應

pj處於初始狀態,可以單方面撤銷,傳送「建議撤銷」給pi

pj處於ready狀態,此時不能幫助pi終結

pj處於commit或abort狀態,向pi傳送「建議提交」或

「建議撤銷」

超時的pi響應如下

pi收到所有pj回答「建議撤銷」,此時pi撤銷事務

pi收到某個pj「建議撤銷」的回答,而其它pj處於就緒狀態,此時pi仍然撤銷

所有pj通知pi處於就緒狀態,此時沒有乙個參與者有足夠的資訊來終結事務,因此處於阻斷狀態

pi收到所有pj的「全域性提交」或」全域性撤銷」訊息,pi可以據此終結

pi收到某些pj的「全域性提交」,而另一些pj處於就緒狀態,pi可以提交

兩階段提交協議是有阻斷的協議。

7、兩階段提交協議的恢復協議

協調者和參與者在站點失效重新啟動後如何處理?

假設2pc協議的執行中:

1)在日誌中寫入一條記錄與傳送一條訊息是乙個原子操作;

2)狀態轉換發生在相應訊息傳送之後

協調者站點失效

1)協調者在初始狀態或等待狀態失效

此時恢復程式可識別出log中有prepare記錄,但沒有「commit」或「abort」記錄,重新啟動提交過程。

2)協調者在提交或撤消狀態失效

如果在恢復時收到所有的確認訊息,則不做任何事情;否則啟動終結協議。

參與者站點失效

1)參與者在初始狀態失效

恢復時不需要其它訊息,自行執行事務的撤消

2)參與者在就緒狀態失效

故障修復後,恢復程式從日誌中讀出「ready」記錄,因沒有「commit」或「abort」記錄,與協調者發訊息進行恢復,(會因等待超時而啟動終結協議處理該事務)。

3)參與者在提交或撤消狀態失效

恢復程式從日誌中讀出 「commit」或「abort」記錄,確認事務已經結束,不需要做任何事情

8、三階段提交協議

三階段提交協議(3pc):

第一階段:表決階段(同2pc協議);

第二階段:協調者若收到乙個「abort」或在規定時間內沒有收到參與者回應,通知所有參與者「abort」事務;否則向參與者發「prepare-to-commit」資訊,使其進入新的準備好提交狀態,參與者收到該資訊後將「prepare-to-commit」資訊寫入日誌,並給協調者發回乙個「ready-to-commit」資訊;

第三階段:第二階段協調者發出的不是「g-abort」資訊進入這一階段,接收到參與者的「ready-to-commit」資訊後發「g-commit」給參與者正式提交事務。

9、 3pc的協調者超時處理

在等待狀態超時

單方面決定撤銷,向所有建議提交的參與者傳送「g-abort」訊息

在準備提交狀態超時

此時協調者不知道沒有響應的參與者是否到達準備提交狀態,但知道每個參與者至少在就緒狀態, 因此協調者可以重發「p-commit」,使參與者轉換到準備提交狀態;並傳送「g-commit」給所有可操作的參與者。

在提交狀態或撤銷狀態超時

協調者已經做出判決,不需要再做任何處理

3pc的參與者超時處理

初始狀態超時

與2pc中的情況相同,單方面撤銷;

就緒狀態超時

參與者準備commit,由於與協調者失去聯絡, 按照終結協議將選舉乙個新的協調者終結事務。

準備提交狀態超時

參與者已收到「p-commit」, 正在等待來自協調者的全域性決定, 按照終結協議選舉乙個新的協調者終結事務。

10、新協調者的終結協議(p189)

新協調者處於等待狀態

將全域性撤銷事務。

新協調者處於準備提交狀態

此時沒有參與者是在撤銷狀態,傳送「g-commit」命令,所有參與者可以全域性提交。

新協調者處於撤銷狀態

所有參與者都撤銷

該終結協議是可重入的,即新的協調者故障後可再選乙個協調者繼續。

新的協調者僅指示可操作站點進行終結,不可操作站點將按照恢復協議進行處理。

11、3pc的恢復協議

基本與2pc的恢復協議相同,只有一些小的差異

協調者失效

按照終結協議,參與者已經終結事務, 協調者恢復時需要詢問參與者以決定如何終結事務

參與者在準備提交狀態失效

恢復時詢問協調者以確定如何終結事務

三階段提交協議能無阻斷地終結事務。

分布式資料庫總結

主要特點 多數處理就地完成 各地的計算機由資料通訊網路相聯絡 克服了中心資料庫的弱點 降低了資料傳輸代價 提高了系統的可靠性,區域性系統發生故障,其他部分還可繼續工作 各個資料庫的位置是透明的,方便系統的擴充 為了協調整個系統的事務活動,事務管理的效能花費高 體系結構 分布式資料庫系統抽象為4層的結...

第二章分布式資料庫管理系統

分布式資料庫是乙個資料集合,這些資料分布在乙個計算機網路的不同的計算機中。此網路的每個站點具有自治的處理能力,並且能執行本地的應用。每個站點的計算機還至少參與乙個全域性應用的執行,這種應用要求使用通訊子系統在幾個站點訪問資料。分布式資料庫中最重要的技術就是實現 在自治的站點之間協同工作。分布式資料庫...

分布式資料庫安全問題分析 謝鑫20100740123

分布式資料庫安全問題分析 姓名 謝鑫班級 物聯網工程一班學號 20100740123 摘要 資料庫最突出的特點之一就是資料共享,資料共享給資料庫應用帶來了眾多的好處,但同時也給資料庫的安全性帶來了嚴重的問題。特別是基於網路的分布式資料庫系統。針對分布式資料庫的安全性問題,分析了分布式資料庫系統的體系...