分布式事務管理 筆記

2021-10-10 19:43:22 字數 4107 閱讀 8911

1.分布式事務的特點

全域性事務:分布式資料庫的事務。乙個全域性事務在執行時分解為由若干與相應站點有關的操作序列組成的「子事務」。

和集中式事務一樣,都要有:原子性、隔離性、一致性、永續性

還要注意的是:系統效率、系統可用性(既不能影響本站點上事務的執行,也不能影響其他站點上事務的執行)

2.分布式事務**執行機制

巨集觀上的執行過程

階段1 表決階段:對當前事務形成乙個決定

1.協調者:

·寫「開始事務」日誌;

·向各個參與者發出「準備」命令;

·進入等待狀態。

2.對於每乙個參與者:

·參與者接收「準備」訊息;

·參與者檢查子事務,確定是否提交子事務。

case1:可以提交子事務:

·參與者寫「就緒」日誌;

·向協調者發出「建議提交」訊息;

·參與者進入「就緒」狀態。

case2:不可以提交子事務:

·參與者寫「撤銷」日誌;

·向協調者發出「建議撤銷」訊息;

·參與者進入「撤銷」狀態。

3.協調者接收到所有參與者的回答後,做出決定:

case1:若所有參與者發出「建議提交」的訊息,則協調者做出提交全域性事務的決定。

·協調者寫提交日誌;

·協調者發出「全域性提交」的訊息;

·協調者進入」提交「狀態。

case2:若發現某參與者發出」建議撤銷「的訊息,協調者做出撤銷全域性事務的決定:

·協調者寫撤銷日誌;

·協調者發出」全域性撤銷「的訊息;

·參與者進入」撤銷「狀態。

採取了一票否決的策略

執行階段

1.對於每乙個處於」就緒「狀態的參與者:

·參與者根據協調者發出的全域性事務處理指令,或者撤銷子事務,或者提交子事務;

·參與者發出」確認「(ack)收到全域性事務處理指令訊息;

·參與者進入」撤銷「或」提交「狀態。

2.協調者寫」結束事務「日誌。

兩階段提交協議的特點

1.參與者有權單方撤銷事務;

2.參與者作出」建議提交「或」建議撤銷「的決定之後,不能」反悔「;

3.處於」就緒「狀態的參與者可能進入提交狀態,或撤銷狀態;

4.協調者和參與者可能進入互相等待狀態。

概述定義:與集中式併發控制從原理上一樣

分布式併發控制的目的:為併發執行的全域性事務,產生乙個可序列化排程

區域性排程:每個站點上的排程稱為區域性排程。

全域性排程:資料庫系統全域性事務的排程。

全域性排程可序列,則區域性排程一定可序列;

但區域性排程可序列,全域性排程不一定可序列。

全域性排程的衝突可序列性應滿足的條件1:單副本控制協議

·每乙個區域性排程是衝突可序列化的。

·任意兩個衝突操作在它們同時出現的各個區域性排程中,必須有相同的執行順序。

全域性排程的衝突可序列性應滿足的條件2:讀乙個寫全部

併發控制的加鎖機制

集中式加鎖法:網路中某乙個站點被指定為主站點,用於存放整個分布式資料庫的加鎖表,負責整個系統事務的加鎖。

主副本加鎖法:每個資料物件指定乙個主副本,不同資料物件的主副本放在不同站點上,演算法:對主副本加鎖;執行更新操作;開鎖。

分布式加鎖演算法:鎖的管理由各個站點排程器參與、協調,本地排程器負責本站資料加鎖,演算法:對全部副本加鎖;執行更新操作;開鎖。

1.加鎖協議

遵守鎖的相容性規則

遵守兩段鎖協議(two phase locking–2pl)

持有x鎖的事務,必須到結束事務才能開鎖

讀,鎖乙個;寫,鎖全部(rowa協議)

2.死鎖管理

全域性死鎖:分布式資料庫中,涉及多個站點的死鎖稱為全域性死鎖。

全域性等待圖(gwfg)

√點a:擁有x、y的副本;t1:read(x),write(y)

√站點b:擁有y、z的副本;t2:read(y),write(z)

√站點c:擁有z的副本;t3:read(z),write(x)

→畫出全域性等待圖,找到代價最小的事務,回滾

死鎖的檢測

a。集中式死鎖檢測法

指定某站點上的鎖管理器作為全域性死鎖檢測器

其餘站點週期地向全域性死鎖檢測器傳送lwfg

全域性死鎖檢測器產生gwfg,並檢測有無迴路

b。分布式死鎖檢測法

每個站點都有死鎖檢測器,負責檢測本地可能的死鎖。

每個站點按照一定規則,向相關站點傳送潛在的死鎖迴路圖。

死鎖的解決

原則:撤消並恢復代價最小的事務。

√撤消並恢復年輕的事務

√撤消並恢復占用資源較少的事務。

√撤消並恢復具有最短執行時間的事務。

併發控制的時標技術

1.時標

時標:唯一識別乙個事務,並用於對事務進行排序的識別符號。

√時標的構成:「本地計數器值,站點識別符號」

√時標的建立:乙個事務t初始化時,事務管理器給該事務分配乙個時標ts(ti)

√時標排序(to)規則:

已知qi和**是分別屬於事務ti和tj衝突操作。

若ts(ti)

2.基本時標法

規則

每個事務在本地站點開始時被賦以乙個全域性唯一的時標。

事務的每個讀或寫操作都有該事務的時標。

如果事務被重新啟動,則被賦予新的時標。

在事務結束之前,不對資料庫進行物理操作。

對於資料庫每個資料物件x,記錄對它進行讀操作和寫操作的最大時標rtm(x)和wtm(x)

基本時標法的執行過程

·設ts是對資料物件×進行讀操作的當前時標。

·若ts

事務用新時標重新啟動;

·否則,執行讀操作,且使:rtm(x)=max(rtm(x),ts)

3.保守時標法

特點:採用緩衝區緩衝「年輕」操作,以便盡量消除「拒絕操作」,避免事務重新啟動。

規則

每個事務只在乙個站點執行。不啟用遠端程式,只能向遠端站點發出讀/寫操作請求。

每個站點必須按照時標時間的順序傳送讀/寫資料的請求。對於每個事務的更新操作,必須做到對同一資料物件先讀後寫。

每個站點都開闢乙個緩衝區,用於儲存其它站點發來的讀/寫操作。

保守時標法的執行過程

一旦某個站點上的各個緩衝區佇列都不空,即,每個站點至少向該站

點傳送了乙個讀和乙個寫,就停止接收,轉入處理緩衝區佇列上的操作。

站點i上處理緩衝區佇列上的操作演算法

重複執行如下步驟,直到沒有滿足執行條件的rij和wij,或者至少出現乙個讀/寫隊列為空,此時rt/wt=0:

令:rt=min(rij),wt=min(wij)

i:站點序號;j:讀/寫操作的序號

按下列原則處理緩衝區內各個站點讀/寫佇列:

掃瞄讀佇列若各佇列存在若干個rij

掃瞄寫佇列若各佇列存在若干個wij

事務管理之分布式事務

當資料庫單錶一年產生的資料超過1000w,那麼就要考慮分庫分表,具體分庫分表的原理在此不做解釋,以後有空詳細說,簡單的說就是原來的乙個資料庫變成了多個資料庫。這時候,如果乙個操作既訪問01庫,又訪問02庫,而且要保證資料的一致性,那麼就要用到分布式事務。所謂的soa化,就是業務的服務化。比如原來單機...

分布式資料庫事務管理

xubindehao部落格 在分布式資料庫環境中,乙個資料庫事務可以更新多個場地上的資料,這種資料庫事務稱為分布式事務。分布式事務必須滿足傳統事務的特性,即原子性,一致性,分離性和永續性。但是分布式事務處理過程中,某些場地 server 可能發生故障,或者由於網路發生故障而無法訪問到某些場地。為了防...

WCF 分布式開發的事務管理機制

事務是一種離散的動作 動作要麼完成,要麼什麼都不做。如果某個資源發起的事務沒有全部完成,則由資源管理器確保資源恢復到事務開始之前的狀態。分布式事務會跨多個資源,因此會涉及多個資源管理器。ado提供一種顯示的事務程式設計方式。但事務由單一的資源管理器來管理,要實現分布式事務需要使用 committab...