版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第6章 分布式同步控制 第1頁,共82頁。2主要內(nèi)容6.1 物理時(shí)鐘同步6.2 邏輯時(shí)鐘同步6.3 互斥控制6.4 選舉算法6.5 *分布式事務(wù)管理6.6 *分布式死鎖處理6.7 小結(jié)6.8 習(xí)題第2頁,共82頁。36.1物理時(shí)鐘同步分布式協(xié)同處理基于時(shí)間的同步分布式算法的特點(diǎn)相關(guān)信息散布在多個(gè)場地上應(yīng)避免因單點(diǎn)失敗造成整個(gè)系統(tǒng)的失敗不存在公共時(shí)鐘或精確的全局時(shí)間第3頁,共82頁。4時(shí)鐘同步問題例:makefile誤差時(shí)間#腳本命令output.o : cc C output.c第4頁,共82頁。5遙遠(yuǎn)的星系遙遠(yuǎn)的星系在n天后的日中天,地球旋轉(zhuǎn)不到360物理時(shí)鐘與現(xiàn)實(shí)時(shí)鐘日中天(transit
2、 of the sun):太陽升到一天的最高點(diǎn)太陽日:連續(xù)的兩次日中天的時(shí)間太陽年:地球圍繞太陽旋轉(zhuǎn)360(一周)。太陽秒:solar-day/24*3600=solar-day/86400平均太陽秒:n solar-days/n*86400如,格林威治時(shí)間第0個(gè)日中天第n個(gè)日中天第5頁,共82頁。6現(xiàn)實(shí)時(shí)鐘TAI秒:國際原子時(shí)間銫133原子鐘:9,192,631,770次躍遷/1秒巴黎BIH統(tǒng)計(jì)50個(gè)實(shí)驗(yàn)室原子鐘后的平均值UTC秒:世界時(shí)間在TAI秒中加入閏秒(TAI秒長度恒定,但比太陽秒短)時(shí)間服務(wù):美國WWV電臺(NIST)、GEOS衛(wèi)星1020UTC- 在TAI中引入閏秒,以與太陽秒同
3、步第6頁,共82頁。7例:時(shí)間的應(yīng)用-GPS全球定位系統(tǒng)GPS衛(wèi)星使用4個(gè)原子時(shí)鐘周期地廣播定位消息即,接收器接收di = c(tnow ti)d =di+ci d = i 時(shí)鐘誤差(1)(2)(3)第7頁,共82頁。8例:GPS全球定位系統(tǒng)求解方程組(擴(kuò)展到3維,需4顆衛(wèi)星)可求出(xr,yr,zr),以及r誤差因素衛(wèi)星的位置衛(wèi)星、接收器的時(shí)鐘精度;信號傳播速度第8頁,共82頁。9時(shí)鐘同步算法如何與現(xiàn)實(shí)時(shí)鐘同步如何使不同機(jī)器之間相互同步設(shè)進(jìn)程P的機(jī)器時(shí)鐘值Cp(t),t 為UTC時(shí)間最大偏移率()精確時(shí)鐘: dC/dt =1快時(shí)鐘: dC/dt 1慢時(shí)鐘: dC/dt 1第9頁,共82頁。1
4、0時(shí)鐘同步算法時(shí)鐘校正設(shè)兩個(gè)時(shí)鐘都存在誤差率,允許兩者之間誤差;由于最大可能誤差2t ,則t /2需每隔/(2)校準(zhǔn)時(shí)間,進(jìn)行校正校準(zhǔn)原則:單調(diào)遞增假設(shè):每秒產(chǎn)生100次中斷,每次中斷將時(shí)間加10毫秒若調(diào)慢時(shí)鐘,中斷服務(wù)程序每次只加9毫秒;若加快時(shí)鐘,則加11毫秒。第10頁,共82頁。11網(wǎng)絡(luò)時(shí)間協(xié)議Christian算法時(shí)間服務(wù)器,可接受WWV的UTC時(shí)間每隔/(2),客戶機(jī)向服務(wù)器詢問時(shí)間服務(wù)器返回CUTC客戶機(jī)校正自己時(shí)間=CUTC+傳播時(shí)間傳播時(shí)間=(T1-T0-I)/2T0:請求時(shí)間,T1:到達(dá)時(shí)間I:中斷處理時(shí)間假定雙向路徑相同優(yōu)化處理設(shè)定傳播閾值,超出閾值,認(rèn)定無效第11頁,共8
5、2頁。12網(wǎng)絡(luò)時(shí)間協(xié)議時(shí)間服務(wù)請求過程參數(shù)假定雙向路徑相同T1:A請求時(shí)間, T2:B接收時(shí)間T3:B發(fā)送時(shí)間, T4:A接收時(shí)間傳輸延時(shí) = dTreqdTres時(shí)間偏差T1=T2 - dTreq + T4=T3+dTres+ 平均延時(shí)=(dTreq+dTres)/2 =T4-T3-dTres=T4 -T3 - =時(shí)間服務(wù)器客戶第12頁,共82頁。13Berkeley 算法 主動式方法時(shí)間監(jiān)控器定期查詢其他機(jī)器時(shí)間計(jì)算出平均值通知其他機(jī)器調(diào)整時(shí)間第13頁,共82頁。14平均值算法 非集中式方法劃分固定時(shí)間間隔R;在每個(gè)間隔,所有機(jī)器廣播自己的時(shí)鐘時(shí)間啟動本地計(jì)時(shí)器收集在S時(shí)間間隔中到達(dá)的其他
6、機(jī)器廣播的時(shí)間執(zhí)行平均時(shí)間計(jì)算算法,得到新的時(shí)間值第14頁,共82頁。15多重外部時(shí)間源法消除傳播延遲造成的誤差例:OSF DCE方法接受所有時(shí)間源的當(dāng)前UTC區(qū)間去掉與其他區(qū)間不相交的區(qū)間將相交部分的中點(diǎn)作為校準(zhǔn)時(shí)間時(shí)間第15頁,共82頁。16無線網(wǎng)絡(luò)中的時(shí)鐘同步參考廣播同步協(xié)議(RBS)普通的網(wǎng)絡(luò)延時(shí)關(guān)鍵路徑RBS的網(wǎng)絡(luò)延時(shí)關(guān)鍵路徑第16頁,共82頁。17無線網(wǎng)絡(luò)中的時(shí)鐘同步參考廣播同步協(xié)議(RBS)一個(gè)節(jié)點(diǎn)廣播一個(gè)消息m后,其他節(jié)點(diǎn)p記錄接收時(shí)間Tp,m第17頁,共82頁。18同步時(shí)鐘的應(yīng)用最多一次消息遞交每個(gè)消息攜帶一個(gè)連接ID和一個(gè)時(shí)間戳ts服務(wù)器的登記表T中,記錄每個(gè)連接C最近的時(shí)
7、間戳t對到達(dá)的消息m,如果ts(m)t, 則拒絕m登記表的維護(hù)例:服務(wù)器中設(shè)置全局變量G G = CurrentTime MaxLifetime MaxClockSkew所有G的時(shí)間戳從表T中清除對于具有新的ID的到達(dá)消息m,如果ts(m)G則拒絕m,否則,接受m按照T,定期地將G寫入磁盤。當(dāng)系統(tǒng)重啟后,G=G+T第18頁,共82頁。19同步時(shí)鐘的應(yīng)用基于時(shí)鐘的緩存一致性當(dāng)客戶讀取一個(gè)副本到緩存時(shí),設(shè)置一個(gè)租期(lease)在租期過期之前,客戶可更新副本,重續(xù)租期如果已經(jīng)過期,緩存中的副本失效優(yōu)化策略: 改進(jìn)的一致性協(xié)議當(dāng)客戶修改文件時(shí),只需將所有沒有到期的緩存副本設(shè)為無效如果某個(gè)客戶崩潰,則
8、等待,直到該客戶的租期過期第19頁,共82頁。206.2 邏輯時(shí)鐘同步計(jì)時(shí)器:石英晶體+計(jì)數(shù)器時(shí)鐘偏差(clock skew)物理時(shí)鐘:真實(shí)時(shí)間邏輯時(shí)鐘:相對時(shí)間“之前”關(guān)系: 事件a在b之前出現(xiàn),則aba為發(fā)送消息m,b為接收m,則ab具有傳遞性:ab, bc,則ac并發(fā)事件(concurrent)兩個(gè)事件相互對立。既不ab,不 b a第20頁,共82頁。21Lamport算法C(a)表示事件a的時(shí)鐘值。性質(zhì):if ab;則C(a)C(b)a,b C(a) C(b)C是遞增的校正算法ab,if C(b)C(a), 則C(b) = C(a) +1第21頁,共82頁。22Lamport算法時(shí)間慢
9、快慢快三個(gè)進(jìn)程,各有自己的局部時(shí)鐘,它們速率不同通過Lamport算法,校正時(shí)鐘第22頁,共82頁。23Lamport算法Pi在執(zhí)行一個(gè)事件之前,Pi執(zhí)行CiCi+1Pi在發(fā)送消息m給Pj時(shí),時(shí)間戳ts(m) CiPj接受到消息m后,CjmaxCj,ts(m)第23頁,共82頁。24舉例:全序多播(1) 問題:兩個(gè)進(jìn)程分別對同一個(gè)復(fù)制數(shù)據(jù)庫進(jìn)行更新時(shí),造成不一致狀態(tài) 原因:全局次序不一致。u1u2; u2u1第24頁,共82頁。25舉例:全序多播(2)解決方案:全序多播發(fā)送進(jìn)程多播發(fā)送消息m時(shí),給m帶上當(dāng)前時(shí)間戳ts當(dāng)接收進(jìn)程收到消息m后,存放其局部隊(duì)列q,并按時(shí)間戳排序接收進(jìn)程向所有進(jìn)程多播
10、發(fā)送應(yīng)答當(dāng)消息m被所有進(jìn)程應(yīng)答,且排在隊(duì)列q隊(duì)首后,方可處理(遞交給接收進(jìn)程,從隊(duì)列中刪除)定理:各個(gè)進(jìn)程的局部隊(duì)列的值最終都相同第25頁,共82頁。26舉例:全序多播(3)舉例q1q2u1u2(1)u1u2u1u2(2)u1u2a11u1u2a22(3)q1q2u1u2a11a22u1u2a11a22(4)u1u2a11a22a12u1u2a11a22a21(5)q1q2u1u2a11a22a12a21u1u2a11a22a12a21(6)a11, a22本地消息a12,a21遠(yuǎn)地消息第26頁,共82頁。27向量時(shí)鐘因果性(causality):如果事件a,b存在因果關(guān)系。a為因,b為果,則
11、C(a)C(b)Vector Clock如果VC(a)VC(b),則a與b為因果關(guān)系進(jìn)程Pi上的向量時(shí)鐘VCi的基本性質(zhì)VCii=n, 在Pi中發(fā)生了n個(gè)事件VCij=k,Pi已知在Pj中發(fā)生了k個(gè)事件第27頁,共82頁。28向量時(shí)鐘(2)向量修改規(guī)則Pi在執(zhí)行一個(gè)事件之前,Pi執(zhí)行VCiiVCii+1當(dāng)進(jìn)程Pi發(fā)送消息m時(shí),ts(m)=VCi當(dāng)進(jìn)程Pj收到m后,置VCjk=maxVCjk,ts(m)kPi的消息m在進(jìn)程Pk正確遞交的條件:ts(m)i = VCki+1tsmjVCkj for all ij第28頁,共82頁。29有序的消息遞交例:A發(fā)一個(gè)帖子M1,B回一個(gè)帖子M2第29頁,共
12、82頁。30強(qiáng)制因果有序通信第30頁,共82頁。31強(qiáng)制因果有序通信012345433323675767888888222223111111555555進(jìn)程0的向量 進(jìn)程1-5的向量發(fā)送消息接收拒絕第31頁,共82頁。32全局狀態(tài)(1)*局部狀態(tài):進(jìn)程正在處理的變量值、對象狀態(tài)等例:分布庫系統(tǒng)中的數(shù)據(jù)庫記錄全局狀態(tài):由每個(gè)進(jìn)程的局部狀態(tài)和正在傳遞的消息組成一致性狀態(tài):符合邏輯關(guān)系-時(shí)鐘次序例:P Q,如有Q的接收狀態(tài),必有P的發(fā)送狀態(tài)m第32頁,共82頁。33全局狀態(tài)(2)*分布式快照(snapshot)反映分布式系統(tǒng)的一致性全局狀態(tài)割集:全局部狀態(tài)的圖形表示(a) 一致性割集 (b) 不一致
13、性割集第33頁,共82頁。34全局狀態(tài)(3)*分布式割集的實(shí)現(xiàn)通信通道結(jié)構(gòu):單向的點(diǎn)對點(diǎn)通信輸入通道:接收消息輸出通道:發(fā)出消息標(biāo)記(Marker):指示收集狀態(tài)進(jìn)程第34頁,共82頁。35全局狀態(tài)(4)*算法:發(fā)起者進(jìn)程P向所有輸出通道發(fā)送marker消息進(jìn)程 Q第一次收到marker,記錄其局部狀態(tài),并傳遞marker(圖1)進(jìn)程 Q記錄所有的到來消息(圖2)進(jìn)程Q 再次收到marker后,完成對該輸入通道的狀態(tài)記錄(圖3)進(jìn)程Q記錄完所有進(jìn)入通道的狀態(tài)后,向發(fā)起者返回局部狀態(tài)和通道狀態(tài)第35頁,共82頁。36全局狀態(tài)(5)*舉例:終止檢測檢查一個(gè)分布式計(jì)算是否結(jié)束前趨者:發(fā)送marker
14、的進(jìn)程后繼者:接收marker的進(jìn)程基本算法(遞歸算法)發(fā)起者進(jìn)程P向所有后繼者發(fā)送marker請求快照當(dāng)進(jìn)程Q完成快照后,向其前趨者返回DONE消息當(dāng)P收到所有后繼者返回DONE消息后,結(jié)束第36頁,共82頁。37全局狀態(tài)(6)修正算法:不允許有正在傳送中的消息,即所有通道必須為空。如果滿足以下條件,返回DONE消息給前趨者進(jìn)程Q的所有后繼者都返回DONE消息進(jìn)程Q在記錄局部狀態(tài)和收到marker之間不再從任何輸入通道收到消息否則,返回CONTINUE消息給前趨者發(fā)起者進(jìn)程P接到CONTINUE消息后,繼續(xù)發(fā)起另一個(gè)snapshot。第37頁,共82頁。386.3 互斥算法基本概念當(dāng)一個(gè)進(jìn)程
15、使用某個(gè)共享資源,其他進(jìn)程不允許對這個(gè)資源操作臨界區(qū):對共享資源進(jìn)行操作的程序段基本方法:信號量、管程問題:死鎖饑餓第38頁,共82頁。39集中式算法協(xié)調(diào)者:確定那個(gè)進(jìn)程可進(jìn)入臨界區(qū)通信量:3個(gè)消息:請求-許可-釋放缺點(diǎn):單點(diǎn)失敗CCC第39頁,共82頁。40分布式算法(Ricart-Agrawala算法)在一個(gè)進(jìn)程P打算進(jìn)入臨界區(qū)R之前,向所有其他進(jìn)程廣播消息 當(dāng)一個(gè)進(jìn)程P收到消息后,做如下決定:若P不在臨界區(qū)R中,也不想進(jìn)入R,它就向P發(fā)送OK;若P已經(jīng)在臨界區(qū)R中,則不回答,并將P放入請求隊(duì)列;若P也同時(shí)要進(jìn)入臨界區(qū)R,但是還沒有進(jìn)入時(shí),則將發(fā)來的消息和它發(fā)送給其余進(jìn)程的時(shí)間戳對比。如果
16、P時(shí)間戳小,則向P發(fā)送OK;否則,不回答,并將P放入請求隊(duì)列;當(dāng)P收到所有的OK消息后,進(jìn)入R。否則,等待。當(dāng)P退出R時(shí),如果存在等待隊(duì)列,則取出一個(gè)請求者,向其發(fā)送OK消息。第40頁,共82頁。41分布式算法舉例舉例: 共有0,1,2三個(gè)進(jìn)程。進(jìn)程0,2申請進(jìn)入臨界區(qū)020022第41頁,共82頁。42分布式算法評價(jià)缺點(diǎn):n點(diǎn)失敗n點(diǎn)瓶頸2(n-1)個(gè)消息改進(jìn)方案:超時(shí)重發(fā)組通信(進(jìn)程少且不改變組成員時(shí))簡單多數(shù)同意(1/2)第42頁,共82頁。43令牌環(huán)算法構(gòu)造一個(gè)邏輯環(huán),得到令牌才可進(jìn)入臨界區(qū)問題:令牌丟失檢測第43頁,共82頁。44三種互斥算法的比較算法每次進(jìn)出需要的消息進(jìn)入前的延遲(
17、按消息次數(shù))存在問題集中式32協(xié)調(diào)者崩潰分布式2(n-1)2(n-1)任何一個(gè)進(jìn)程崩潰令牌環(huán)1到0到n-1丟失令牌,進(jìn)程崩潰第44頁,共82頁。456.4 選舉算法作用:在分布式進(jìn)程之間做出統(tǒng)一的的決定例如:確定協(xié)調(diào)者前提:每個(gè)進(jìn)程具有唯一的號碼,如IP地址每個(gè)進(jìn)程知道其它進(jìn)程的號碼選舉標(biāo)準(zhǔn):確定具有最大號碼的進(jìn)程第45頁,共82頁。46霸道(Bully)算法將進(jìn)程進(jìn)行排序P向高的進(jìn)程發(fā)E消息如果沒有響應(yīng),P選舉獲勝如果有進(jìn)程Q響應(yīng),則P結(jié)束,Q接管選舉并繼續(xù)下去。456564656第46頁,共82頁。47環(huán)算法所有進(jìn)程按邏輯或物理次序排序,形成一個(gè)環(huán)當(dāng)一個(gè)進(jìn)程P發(fā)現(xiàn)協(xié)調(diào)者C失效后,向后續(xù)進(jìn)程
18、發(fā)送E消息每個(gè)進(jìn)程繼續(xù)向后傳遞E消息,直到返回PP再將新確定的協(xié)調(diào)者C傳給所有進(jìn)程52第47頁,共82頁。48無線網(wǎng)絡(luò)系統(tǒng)的選舉算法例:選舉一個(gè)協(xié)調(diào)者,它具有最大的能力1、發(fā)起者,提出選舉第48頁,共82頁。49無線網(wǎng)絡(luò)系統(tǒng)的選舉算法2、向鄰居節(jié)點(diǎn)擴(kuò)展,形成一個(gè)生成樹(spanning tree)第49頁,共82頁。50無線網(wǎng)絡(luò)系統(tǒng)的選舉算法3、沿生成樹向父節(jié)點(diǎn)返回i,cmax,cmax為最大值4、發(fā)起者,向其余節(jié)點(diǎn)發(fā)布協(xié)調(diào)者第50頁,共82頁。51大型系統(tǒng)的選舉大型系統(tǒng)中需要選舉多個(gè)節(jié)點(diǎn)如p2p系統(tǒng)中的超級節(jié)點(diǎn)對如何選擇超級節(jié)點(diǎn)(superpeer)的要求:普通節(jié)點(diǎn)對超級節(jié)點(diǎn)的訪問延遲要小超
19、級節(jié)點(diǎn)應(yīng)均勻地分布在覆蓋網(wǎng)絡(luò)中相對于覆蓋網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量,應(yīng)有一定數(shù)量的預(yù)先定義好的超級節(jié)點(diǎn)每個(gè)超級節(jié)點(diǎn)所服務(wù)的普通節(jié)點(diǎn)個(gè)數(shù)不能超過規(guī)定的數(shù)量例:一個(gè)小型chord系統(tǒng)m=8(長度), k=3(預(yù)留)P AND 11100000作為超級節(jié)點(diǎn)的鍵值N個(gè)節(jié)點(diǎn)中平均有2k個(gè)超級節(jié)點(diǎn)第51頁,共82頁。52大型系統(tǒng)的選舉M維空間中的超級節(jié)點(diǎn)選舉首先,在N個(gè)隨機(jī)選擇的節(jié)點(diǎn)中,放置N個(gè)令牌每個(gè)節(jié)點(diǎn)不允許擁有一個(gè)以上的令牌每個(gè)令牌具有排斥力,推動另一個(gè)令牌移動通過互相排斥,最終達(dá)到在空間中的均勻分布例:使用排斥力在二維空間中移動令牌第52頁,共82頁。536.5 分布式事務(wù)管理*事務(wù)原子性: 組成原子事務(wù)的
20、一組操作要么全部執(zhí)行,要么一個(gè)也不執(zhí)行,并且事務(wù)失敗后能返回到最初狀態(tài)例1: 老式磁帶系統(tǒng)(備份)例2:匯款(提款存款)第53頁,共82頁。54事務(wù)的性質(zhì) 原子性(Atomic):對外部世界來說,事務(wù)的發(fā)生是不可分割的;一致性(Consistent):事務(wù)不會破壞系統(tǒng)的不變式;隔離性(Isolated):并發(fā)的事務(wù)之間不會互相干擾;可串行性(Serializable):多個(gè)事務(wù)并發(fā)執(zhí)行的結(jié)果,與它們順序地執(zhí)行效果相同。持久性(Durable):一旦一個(gè)事務(wù)提交,它的更新結(jié)果不會因故障而丟失。第54頁,共82頁。55事務(wù)模型穩(wěn)定存儲器(Stable Storage):通過一對雙工磁盤實(shí)現(xiàn)第55頁
21、,共82頁。56事務(wù)原語(1)BEGIN_TRA NSACTION:標(biāo)記一個(gè)事務(wù)的開始;(2)END_TRANSACTION:結(jié)束事務(wù)并設(shè)法提交;(3)ABORT_TRANSACTION:取消事務(wù)并恢復(fù)舊值;(4) READ:從一個(gè)文件(或其他類型的對象,如數(shù)據(jù)庫)讀取數(shù)據(jù);(5) WRITE:將數(shù)據(jù)寫入一個(gè)文件(或其他類型的對象,如數(shù)據(jù)庫)第56頁,共82頁。57事務(wù)舉例BEGIN TRANSACTION reserve WPJFK reserve JFKNairobi reserve NairobiMalindi END TRANSACTION BEGIN TRANSACTION rese
22、rve WPJFK reserve JFKNairobi NairobiMalindi fullABORT TRASACTION 當(dāng)?shù)谌齻€(gè)航班的機(jī)票預(yù)定失敗后事務(wù)中止預(yù)定三個(gè)航班機(jī)票:中轉(zhuǎn)站是JFK、Nairobi第57頁,共82頁。58分布式事務(wù)嵌套式事務(wù)(nested):由子事務(wù)樹組成分布式事務(wù):由分布式數(shù)據(jù)操作組成第58頁,共82頁。59事務(wù)的實(shí)現(xiàn)(1) 私有工作空間與影子更新方法當(dāng)進(jìn)程啟動事務(wù)T時(shí),分配一個(gè)私有工作空間W,在提交或中止T前所有的讀寫操作都是在W中進(jìn)行03影子塊第59頁,共82頁。60事務(wù)的實(shí)現(xiàn)(1)日志方法:就地更新(in-place)日志紀(jì)錄事務(wù)標(biāo)識,文件標(biāo)識,塊號,
23、前像,后像例:第60頁,共82頁。61先寫日志協(xié)議(WAL)回滾(Rollback):反做(undo)廢棄事務(wù)的更新結(jié)果只有當(dāng)日志成功地寫入穩(wěn)存之后,才可以修改文件。如果事務(wù)執(zhí)行成功并被提交,則它的提交記錄將被寫入日志。如果事務(wù)異常中止,則用日志來備份初始狀態(tài)。從日志的未尾開始,向回逐個(gè)讀取日志記錄,反做記錄中描述的修改,即回滾處理。在系統(tǒng)崩潰后,日志也可用來進(jìn)行的恢復(fù)。第61頁,共82頁。62兩階段提交協(xié)議(2PC)準(zhǔn)備階段:取得一致決定執(zhí)行階段:執(zhí)行命令(提交或廢棄)第62頁,共82頁。63并發(fā)控制(Concurrency Control)正確性標(biāo)準(zhǔn):可串行性(serializable)B
24、EGIN_TRANSACTION x = 0; x = x + 1;END_TRANSACTION 事務(wù)1可能的調(diào)度策略BEGIN_TRANSACTION x = 0; x = x + 2;END_TRANSACTION事務(wù)2BEGIN_TRANSACTION x = 0; x = x + 3;END_TRANSACTION事務(wù)3調(diào)度1x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3合法調(diào)度2x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3;合法調(diào)度3x = 0; x = 0; x
25、= x + 1; x = 0; x = x + 2; x = x + 3;非法第63頁,共82頁。64并發(fā)控制事務(wù)管理系統(tǒng)的結(jié)構(gòu)第64頁,共82頁。65并發(fā)控制分布式事務(wù)管理系統(tǒng)的結(jié)構(gòu)第65頁,共82頁。66基于鎖的方法封鎖加鎖:獲得資源上的封鎖解鎖:釋放已擁有的鎖封鎖的類型和相容性讀鎖(R)寫鎖(W)鎖的粒度細(xì)粒度:如字段粗粒度:如文件RWRW第66頁,共82頁。67兩階段封鎖協(xié)議(2PL)兩階段封鎖協(xié)議(2PL)1. 加鎖階段2. 開鎖階段第67頁,共82頁。68兩階段封鎖協(xié)議(2PL)嚴(yán)格的2PL與2PC結(jié)合避免級聯(lián)廢棄(cascaded abort)死鎖:等待圖(WFG)超時(shí)檢測(ti
26、meout)第68頁,共82頁。69時(shí)間戳法(Timestamp)每個(gè)事務(wù)的操作帶有該事務(wù)的時(shí)間印ts(T)每個(gè)文件帶有對它操作的最后一個(gè)提交事務(wù)的讀時(shí)間戳tsr(x)、寫時(shí)間戳tsw(x)算法:如果當(dāng)前事務(wù)T的時(shí)間戳文件的時(shí)間戳,則執(zhí)行;否則 ,廢棄T;第69頁,共82頁。70時(shí)間戳法舉例設(shè)有三個(gè)事務(wù)T1, T2 , T3 , ts(T1)ts(T2)ts(T3);T1, T3已調(diào)度執(zhí)行,T2請求調(diào)度寫操作讀操作第70頁,共82頁。71樂觀法(Optimistic CC)算法讀階段:將文件讀入私有工作區(qū)確認(rèn)階段:提交前,檢查是否有沖突有,則廢棄事務(wù),重啟。無,則提交事務(wù)寫階段:如可以提交,則
27、將修改內(nèi)容從私有工作區(qū),寫入文件。第71頁,共82頁。72三種方法比較算法并發(fā)度死鎖性能2PL低有中時(shí)間印法較高無較高樂觀法高無高(廢棄度低時(shí))第72頁,共82頁。736.6 分布式系統(tǒng)的死鎖處理*死鎖解決策略鴕鳥法:留給用戶考慮檢測法:發(fā)現(xiàn)死鎖,進(jìn)行處理預(yù)防法:在設(shè)計(jì)上使死鎖不可能發(fā)生避免法:在運(yùn)行中,防止出現(xiàn)死鎖銀行家算法Dijkstra,1965P, free第73頁,共82頁。74集中式檢測方法進(jìn)程-資源等待圖節(jié)點(diǎn):進(jìn)程P、資源R有向邊:(1)PR請求關(guān)系; (2) R P擁有關(guān)系;死鎖檢測協(xié)調(diào)者負(fù)責(zé)檢測死鎖資源圖的維護(hù)策略:當(dāng)資源圖中,有一條邊加入/刪除時(shí),通知協(xié)調(diào)者每個(gè)進(jìn)程周期性地向協(xié)調(diào)者發(fā)送圖的更新消息協(xié)調(diào)者在需要時(shí),向參入者請求第74頁,共82頁。75假死鎖問題:B釋放R,請求T。若請求T消息先到達(dá)協(xié)調(diào)者解決方案一:協(xié)調(diào)者確認(rèn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寫字樓租賃續(xù)約合同
- 大學(xué)教職工宿舍租賃協(xié)議
- 校園綠化養(yǎng)護(hù)工程合同
- 汽車維修車間建設(shè)合同
- 天然氣調(diào)壓站建設(shè)協(xié)議
- 農(nóng)田灌溉項(xiàng)目施工合同模板
- 制造業(yè)加工合同簽訂指南
- 教育機(jī)構(gòu)文秘招聘合同書
- 幕墻玻璃建設(shè)合同案例
- 影視意向合同模板
- COPD診療新進(jìn)展
- 先進(jìn)先出法與后進(jìn)先出法ppt課件
- 精品資料(2021-2022年收藏的)病案管理制度全套
- 大連市土地一級開發(fā)整理
- 低壓工作票(共3頁)
- 2閥門結(jié)構(gòu)和工作原理(上)
- 基礎(chǔ)圖案設(shè)計(jì)(課堂PPT)
- 食堂操作工藝流程圖
- ?;方?jīng)營企業(yè)生產(chǎn)安全應(yīng)急救援預(yù)案
- 玉米栽培品比試驗(yàn)-文檔
- 幼兒園參觀學(xué)?;顒臃桨?篇
評論
0/150
提交評論