版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、COMPANY LOGO第九章第九章 分布式事務(wù)處理分布式事務(wù)處理袁帥袁帥 何杰濤何杰濤Company Logo第九章第九章 分布式事務(wù)處理分布式事務(wù)處理 9.1 概述概述 9.2 簡單分布式事務(wù)和嵌套事務(wù)簡單分布式事務(wù)和嵌套事務(wù) 9.3 原子提交協(xié)議原子提交協(xié)議 9.4 分布式事務(wù)的并發(fā)控制分布式事務(wù)的并發(fā)控制 9.5 分布式事務(wù)的死鎖分布式事務(wù)的死鎖 9.6 帶復(fù)制數(shù)據(jù)的事務(wù)帶復(fù)制數(shù)據(jù)的事務(wù) 9.7 小結(jié)小結(jié)Company Logo9.1 9.1 概述概述 事務(wù)事務(wù) 用于訪問和修改各種數(shù)據(jù)項(xiàng)的一個(gè)程序單位。用于訪問和修改各種數(shù)據(jù)項(xiàng)的一個(gè)程序單位。 數(shù)據(jù)庫管理系統(tǒng)中的事務(wù)是訪問數(shù)據(jù)庫的一個(gè)程
2、數(shù)據(jù)庫管理系統(tǒng)中的事務(wù)是訪問數(shù)據(jù)庫的一個(gè)程序的執(zhí)行。序的執(zhí)行。 分布式系統(tǒng)中,事務(wù)是指一組客戶請求的執(zhí)行。分布式系統(tǒng)中,事務(wù)是指一組客戶請求的執(zhí)行。從客戶角度看,事務(wù)是組成一個(gè)步驟的一組操作,從客戶角度看,事務(wù)是組成一個(gè)步驟的一組操作,它將服務(wù)器的數(shù)據(jù)從一個(gè)一致性狀態(tài)轉(zhuǎn)換到另一它將服務(wù)器的數(shù)據(jù)從一個(gè)一致性狀態(tài)轉(zhuǎn)換到另一個(gè)一致性狀態(tài)。個(gè)一致性狀態(tài)。Company Logo9.1 9.1 概述概述 分布式事務(wù)分布式事務(wù) 活動涉及多個(gè)服務(wù)器的事務(wù)?;顒由婕岸鄠€(gè)服務(wù)器的事務(wù)。Company Logo9.2 9.2 簡單分布式事務(wù)和嵌套事務(wù)簡單分布式事務(wù)和嵌套事務(wù) 簡單分布式事務(wù):又稱為平面分布式事務(wù),
3、一個(gè)簡單分布式事務(wù):又稱為平面分布式事務(wù),一個(gè)客戶可請求多臺服務(wù)器,但每接收客戶請求的服客戶可請求多臺服務(wù)器,但每接收客戶請求的服務(wù)器并不調(diào)用其他服務(wù)器的操作。務(wù)器并不調(diào)用其他服務(wù)器的操作。XYZTCompany Logo9.2 9.2 簡單分布式事務(wù)和嵌套事務(wù)簡單分布式事務(wù)和嵌套事務(wù) 嵌套事務(wù):一個(gè)服務(wù)器的一個(gè)操作可能觸發(fā)另一嵌套事務(wù):一個(gè)服務(wù)器的一個(gè)操作可能觸發(fā)另一個(gè)服務(wù)器的某個(gè)操作,通常后者可能又進(jìn)一步請個(gè)服務(wù)器的某個(gè)操作,通常后者可能又進(jìn)一步請求操作,依次類推。同層次的子事務(wù)可以并發(fā)執(zhí)求操作,依次類推。同層次的子事務(wù)可以并發(fā)執(zhí)行。行。Company Logo9.2 9.2 簡單分布式事
4、務(wù)和嵌套事務(wù)簡單分布式事務(wù)和嵌套事務(wù)TT1T2T11T12T21T22XYMNPCompany Logo9.2 9.2 簡單分布式事務(wù)和嵌套事務(wù)簡單分布式事務(wù)和嵌套事務(wù)事務(wù)的第一個(gè)服務(wù)器成為事務(wù)的協(xié)調(diào)者,負(fù)責(zé)終止或提交事務(wù)。事務(wù)的第一個(gè)服務(wù)器成為事務(wù)的協(xié)調(diào)者,負(fù)責(zé)終止或提交事務(wù)。管理分布式事務(wù)訪問的對象的每個(gè)服務(wù)器都是該事務(wù)的參與者,每個(gè)管理分布式事務(wù)訪問的對象的每個(gè)服務(wù)器都是該事務(wù)的參與者,每個(gè)事務(wù)參與者負(fù)責(zé)跟蹤所有參與分布式事務(wù)的可恢復(fù)對象。事務(wù)參與者負(fù)責(zé)跟蹤所有參與分布式事務(wù)的可恢復(fù)對象。事務(wù)執(zhí)行過程中,協(xié)調(diào)者在列表中記錄所有對參與者的引用,每一個(gè)事務(wù)執(zhí)行過程中,協(xié)調(diào)者在列表中記錄所有對
5、參與者的引用,每一個(gè)參與者也記錄一個(gè)對協(xié)調(diào)者的引用。參與者也記錄一個(gè)對協(xié)調(diào)者的引用。join(Trans, Server-id of coordinator) 事務(wù)標(biāo)識符事務(wù)標(biāo)識符TID分為創(chuàng)建該事務(wù)的服務(wù)器標(biāo)識符(分為創(chuàng)建該事務(wù)的服務(wù)器標(biāo)識符(IP)和對該服務(wù))和對該服務(wù)器來說是唯一的數(shù)字兩部分。器來說是唯一的數(shù)字兩部分。Company Logo9.2 9.2 簡單分布式事務(wù)和嵌套事務(wù)簡單分布式事務(wù)和嵌套事務(wù) 銀銀行事行事務(wù)務(wù)涉及服涉及服務(wù)務(wù)器器Branch X、Y、Z上的上的賬戶賬戶A、B、C、D,客,客戶戶事事務(wù)務(wù)T從從A轉(zhuǎn)賬轉(zhuǎn)賬$4到到C,從從B轉(zhuǎn)賬轉(zhuǎn)賬$3到到D。 T=openTra
6、nsaction A.withdraw(4); C.deposit(4); B.withdraw(3); D.deposit(3); closeTransaction Company Logo9.2 9.2 簡單分布式事務(wù)和嵌套事務(wù)簡單分布式事務(wù)和嵌套事務(wù)TABCDA.withdraw(4);B.withdraw(3);C.deposit(4);D.deposit(3);BranchX BranchY BranchZ協(xié)調(diào)者協(xié)調(diào)者joinjoinjoinopenTransactioncloseTransactionb.withdraw(T,3)協(xié)調(diào)者在其中某一服務(wù)器上,例如BranchX。Com
7、pany Logo9.3 原子提交協(xié)議 事務(wù)的原子性事務(wù)的原子性:要求當(dāng)一個(gè)分布式事務(wù)結(jié)束時(shí),它要求當(dāng)一個(gè)分布式事務(wù)結(jié)束時(shí),它的操作要么全部執(zhí)行的操作要么全部執(zhí)行,要么全部沒執(zhí)行。要么全部沒執(zhí)行。 原子提交協(xié)議:以原子方式完成事務(wù)的方式。原子提交協(xié)議:以原子方式完成事務(wù)的方式。Company Logo9.3 原子提交協(xié)議 兩階段提交協(xié)議:準(zhǔn)備和執(zhí)行兩個(gè)階段。兩階段提交協(xié)議:準(zhǔn)備和執(zhí)行兩個(gè)階段。CanCommit? (Trans) Yes/No 由協(xié)調(diào)者發(fā)給參與者,詢問它是否提交事務(wù)。參與者將其表決作應(yīng)答。由協(xié)調(diào)者發(fā)給參與者,詢問它是否提交事務(wù)。參與者將其表決作應(yīng)答。DoCommit(Trans
8、) 由協(xié)調(diào)者發(fā)給參與者,通知所有參與者提交事務(wù)。由協(xié)調(diào)者發(fā)給參與者,通知所有參與者提交事務(wù)。HaveCommitted(Trans,Woker) 由參與者發(fā)給協(xié)調(diào)者,以證實(shí)它已提交了它的事務(wù)。由參與者發(fā)給協(xié)調(diào)者,以證實(shí)它已提交了它的事務(wù)。GetDecision(Trans) Yes/No 當(dāng)參與者已表決當(dāng)參與者已表決Yes,而一段延遲后無應(yīng)答時(shí),由參與者發(fā)給協(xié)調(diào)者詢問關(guān)于,而一段延遲后無應(yīng)答時(shí),由參與者發(fā)給協(xié)調(diào)者詢問關(guān)于事務(wù)的決定。用于故障或超時(shí)恢復(fù)。事務(wù)的決定。用于故障或超時(shí)恢復(fù)。 Company Logo9.3 原子提交協(xié)議階段階段1(表決階段):(表決階段):(1)協(xié)調(diào)者向事務(wù)的每個(gè)參與
9、者發(fā)送一個(gè))協(xié)調(diào)者向事務(wù)的每個(gè)參與者發(fā)送一個(gè)CanCommit?請求;?請求;(2)當(dāng)參與者受到)當(dāng)參與者受到CanCommit?請求,將其表決(?請求,將其表決(Yes或或No)應(yīng)答傳遞給協(xié)調(diào)者。若表決為應(yīng)答傳遞給協(xié)調(diào)者。若表決為No,參與者立即中止。,參與者立即中止。階段階段2 (根據(jù)表決結(jié)果完成)(根據(jù)表決結(jié)果完成)(3)協(xié)調(diào)者收集表決(包括自己的);)協(xié)調(diào)者收集表決(包括自己的); (a)若無故障且所有表決均為)若無故障且所有表決均為Yes,則協(xié)調(diào)者決定提交事務(wù),則協(xié)調(diào)者決定提交事務(wù)且向每個(gè)參與者發(fā)送一個(gè)且向每個(gè)參與者發(fā)送一個(gè)DoCommit請求;請求; (b)否則,協(xié)調(diào)者決定中止事務(wù)
10、,且向所有表決為)否則,協(xié)調(diào)者決定中止事務(wù),且向所有表決為Yes的參的參與者發(fā)送與者發(fā)送AbortTransaction請求。請求。(4)表決為)表決為Yes的參與者等待協(xié)調(diào)者的的參與者等待協(xié)調(diào)者的DoCommit或或AbortTransaction請求。當(dāng)參與者收到某一消息,按其執(zhí)行。若請求。當(dāng)參與者收到某一消息,按其執(zhí)行。若是提交,發(fā)一個(gè)是提交,發(fā)一個(gè)HaveCommitted給協(xié)調(diào)者作為確認(rèn)。給協(xié)調(diào)者作為確認(rèn)。Company Logo9.3 原子提交協(xié)議兩階段提交協(xié)議中的超時(shí)兩階段提交協(xié)議中的超時(shí)預(yù)備提交(等待表決)已提交完成協(xié)調(diào)者步驟 狀態(tài)參與者步驟 狀態(tài)預(yù)備提交(不確定)已提交Can
11、Commit?YesDoCommitHaveCCompany Logo9.3 原子提交協(xié)議 兩階段提交協(xié)議中的性能兩階段提交協(xié)議中的性能有有N個(gè)參與者需要傳遞個(gè)參與者需要傳遞N個(gè)個(gè)canCommit?消息和應(yīng)答,消息和應(yīng)答,然后再有然后再有N個(gè)個(gè)doCommit消息。消息。消息開銷與消息開銷與3N成正比,時(shí)間開銷是成正比,時(shí)間開銷是3次消息往返。次消息往返。由于協(xié)議在沒有由于協(xié)議在沒有haveCommitted消息時(shí)仍然能正確運(yùn)消息時(shí)仍然能正確運(yùn)行行-它們的作用只是通知服務(wù)器刪除過時(shí)的協(xié)調(diào)者信息它們的作用只是通知服務(wù)器刪除過時(shí)的協(xié)調(diào)者信息,所以不算在估計(jì)開銷中。,所以不算在估計(jì)開銷中。Comp
12、any Logo9.4 9.4 分布式事務(wù)的并發(fā)控制分布式事務(wù)的并發(fā)控制 每個(gè)服務(wù)器要管理很多對象,它必須保證在并發(fā)每個(gè)服務(wù)器要管理很多對象,它必須保證在并發(fā)事務(wù)訪問這些對象時(shí),這些對象仍保持一致性。事務(wù)訪問這些對象時(shí),這些對象仍保持一致性。因此,每個(gè)服務(wù)器需要對自己的對象應(yīng)用并發(fā)控因此,每個(gè)服務(wù)器需要對自己的對象應(yīng)用并發(fā)控制機(jī)制。制機(jī)制。 分布式事務(wù)所有服務(wù)器共同保證事務(wù)以串行等價(jià)分布式事務(wù)所有服務(wù)器共同保證事務(wù)以串行等價(jià)方式執(zhí)行。這就意味著,如果事務(wù)方式執(zhí)行。這就意味著,如果事務(wù)T對某一服務(wù)對某一服務(wù)器對象沖突訪問在事務(wù)器對象沖突訪問在事務(wù)U之前,那么在所有服務(wù)之前,那么在所有服務(wù)器上對對
13、象的沖突操作,事務(wù)器上對對象的沖突操作,事務(wù)T都在都在U之前。之前。Company Logo9.4 9.4 分布式事務(wù)的并發(fā)控制分布式事務(wù)的并發(fā)控制 鎖機(jī)制鎖機(jī)制 在一個(gè)分布式事務(wù)中,每個(gè)服務(wù)器都為其數(shù)據(jù)項(xiàng)在一個(gè)分布式事務(wù)中,每個(gè)服務(wù)器都為其數(shù)據(jù)項(xiàng)保留鎖。本地鎖管理者可以決定是授予鎖還是讓保留鎖。本地鎖管理者可以決定是授予鎖還是讓請求的事務(wù)等待。當(dāng)它知道事務(wù)已在參加該事務(wù)請求的事務(wù)等待。當(dāng)它知道事務(wù)已在參加該事務(wù)的所有服務(wù)器上提交或者中止之前不能釋放鎖。的所有服務(wù)器上提交或者中止之前不能釋放鎖。 由于服務(wù)器彼此獨(dú)立地設(shè)置它們的鎖,有可能不由于服務(wù)器彼此獨(dú)立地設(shè)置它們的鎖,有可能不同服務(wù)器將不同
14、的次序加于事務(wù)上,就可能出現(xiàn)同服務(wù)器將不同的次序加于事務(wù)上,就可能出現(xiàn)分布式死鎖的情況。分布式死鎖的情況。Company Logo9.4 9.4 分布式事務(wù)的并發(fā)控制分布式事務(wù)的并發(fā)控制 T UWrite(A)在服務(wù)器X上對A加鎖Write(B)在服務(wù)器Y上對B加鎖 Read(B)在服務(wù)器Y上等待U Read(A)在服務(wù)器X上等待TCompany Logo9.4 9.4 分布式事務(wù)的并發(fā)控制分布式事務(wù)的并發(fā)控制 分布式事務(wù)中的時(shí)間戳定序并發(fā)控制分布式事務(wù)中的時(shí)間戳定序并發(fā)控制 在分布式事務(wù)中,每個(gè)服務(wù)器可以分配全局唯一的時(shí)戳。在分布式事務(wù)中,每個(gè)服務(wù)器可以分配全局唯一的時(shí)戳。事務(wù)第一次訪問的服
15、務(wù)器分配一個(gè)全局唯一的時(shí)戳給客戶,事務(wù)第一次訪問的服務(wù)器分配一個(gè)全局唯一的時(shí)戳給客戶,該時(shí)戳被傳給事務(wù)中執(zhí)行了操作的每個(gè)服務(wù)器。該時(shí)戳被傳給事務(wù)中執(zhí)行了操作的每個(gè)服務(wù)器。 例如,在一個(gè)服務(wù)器上由事務(wù)例如,在一個(gè)服務(wù)器上由事務(wù)U訪問的數(shù)據(jù)項(xiàng)在由事務(wù)訪問的數(shù)據(jù)項(xiàng)在由事務(wù)T訪問該數(shù)據(jù)項(xiàng)后提交,則當(dāng)訪問該數(shù)據(jù)項(xiàng)后提交,則當(dāng)U和和T在另外的服務(wù)器上訪問在另外的服務(wù)器上訪問相同數(shù)據(jù)項(xiàng)時(shí),它們也必須按照相同的次序提交。相同數(shù)據(jù)項(xiàng)時(shí),它們也必須按照相同的次序提交。 為實(shí)現(xiàn)在所有服務(wù)器相同次序,必須在時(shí)戳次序上達(dá)成一為實(shí)現(xiàn)在所有服務(wù)器相同次序,必須在時(shí)戳次序上達(dá)成一致。時(shí)間戳是一個(gè)二元組致。時(shí)間戳是一個(gè)二元組C
16、ompany Logo9.4 9.4 分布式事務(wù)的并發(fā)控制分布式事務(wù)的并發(fā)控制 分布式事務(wù)中的樂觀并發(fā)控制分布式事務(wù)中的樂觀并發(fā)控制 樂觀并發(fā)控制盡管放心去做你想做的事,不用在意其他人樂觀并發(fā)控制盡管放心去做你想做的事,不用在意其他人正在做什么。如果有問題,那么以后再考慮。正在做什么。如果有問題,那么以后再考慮。 每個(gè)事務(wù)在允許提交前都是有效的。服務(wù)器在驗(yàn)證開始時(shí)每個(gè)事務(wù)在允許提交前都是有效的。服務(wù)器在驗(yàn)證開始時(shí)分配事務(wù)號,事務(wù)根據(jù)事務(wù)號的次序排序。分配事務(wù)號,事務(wù)根據(jù)事務(wù)號的次序排序。Company Logo9.4 9.4 分布式事務(wù)的并發(fā)控制分布式事務(wù)的并發(fā)控制TU讀(A) 在X上讀(B)
17、 在Y上寫(A)寫(B)讀(B) 在Y上讀(A) 在X上寫(B)寫(A)Company Logo9.4 9.4 分布式事務(wù)的并發(fā)控制分布式事務(wù)的并發(fā)控制并發(fā)度死鎖性能鎖低有中樂觀法高無高(廢棄度低時(shí))時(shí)間戳法較高無較高Company Logo9.59.5分布式事務(wù)的死鎖分布式事務(wù)的死鎖UVW交錯(cuò)事務(wù)U、V、W,涉及到服務(wù)器X、Y管理的數(shù)據(jù)項(xiàng)A、B,和服務(wù)器Z管理的數(shù)據(jù)項(xiàng)C、DCompany Logo9.59.5分布式事務(wù)的死鎖分布式事務(wù)的死鎖WCDZAXUVB 被占用等待被占用被占用被占用等待等待WVU YCompany Logo9.59.5分布式事務(wù)的死鎖分布式事務(wù)的死鎖 邊追逐法邊追逐法
18、這種方法中,不需要構(gòu)造全局等待圖,但是每個(gè)服務(wù)器都有很多關(guān)于邊的信息。服務(wù)器通過稱為探針(probe)的正向消息沿著整個(gè)分布式系統(tǒng)的有向圖的邊傳送來發(fā)現(xiàn)環(huán)路。 當(dāng)服務(wù)器1發(fā)現(xiàn)某個(gè)事務(wù)T開始等待事務(wù)U時(shí),而U在等待服務(wù)器2上對象時(shí),服務(wù)器1發(fā)送一個(gè)T U的探針消息來啟動一次檢測過程,這個(gè)消息發(fā)給阻塞U的服務(wù)器2。Company Logo9.59.5分布式事務(wù)的死鎖分布式事務(wù)的死鎖WUVCBA 探針傳遞被占用被占用等待等待等待發(fā)起W UW U VW U V W死鎖被死鎖被檢測到檢測到服務(wù)器X服務(wù)器Y服務(wù)器ZCompany Logo 事務(wù)優(yōu)先級事務(wù)優(yōu)先級 在上面的算法中,死鎖涉及的每個(gè)事務(wù)都可能發(fā)起死鎖檢在上面的算法中,死鎖涉及的每個(gè)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年新教材高中物理 第5章 傳感器 1 認(rèn)識傳感器(1)教學(xué)實(shí)錄 新人教版選擇性必修第二冊
- 工作計(jì)劃怎么寫15篇
- 2023七年級道德與法治上冊 第三單元 師長情誼第六課 師生之間 第1框 走近老師教學(xué)實(shí)錄 新人教版
- 高校教師講課心得7篇
- 學(xué)生會年終述職報(bào)告(集合15篇)
- 銷售人員個(gè)人述職報(bào)告(8篇)
- 維修施工方案(范文)
- 個(gè)人留學(xué)申請書
- 社會心理學(xué)-群體心理效應(yīng)
- 上市公司資產(chǎn)置換案例4篇
- 2025山東濰坊光明電力服務(wù)限公司招聘142人管理單位筆試遴選500模擬題附帶答案詳解
- 《診斷教學(xué)胸腔積液》課件
- 山東力明科技職業(yè)學(xué)院《互換性與測量技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 河南省洛陽市2023-2024學(xué)年高二上學(xué)期期末考試數(shù)學(xué)試題(解析版)
- 三年級語文上冊 期末句子訓(xùn)練專項(xiàng)訓(xùn)練(四)(含答案)(部編版)
- 美團(tuán)配送站長述職報(bào)告
- 2024國家開放大學(xué)【法理學(xué)】形考試題及答案(二)
- 2024版年度中華人民共和國傳染病防治法
- 高考浙江卷:2023年6月《政治》考試真題與參考答案
- 病理生理學(xué)缺氧
- 2020年漣源市住房城鄉(xiāng)建設(shè)部信息中心招聘《計(jì)算機(jī)專業(yè)知識》試題匯編
評論
0/150
提交評論