時(shí)間:2022-12-19 04:30:01 | 來源:信息時(shí)代
時(shí)間:2022-12-19 04:30:01 來源:信息時(shí)代
分布式并發(fā)控制 : 保證分布式數(shù)據(jù)庫(kù)系統(tǒng)中的多個(gè)事務(wù)的高效、正確地并發(fā)執(zhí)行所采用的技術(shù)或機(jī)制。保證并發(fā)事務(wù)的正確執(zhí)行,就是保證并行執(zhí)行的事務(wù)間的沖突操作的正確執(zhí)行,也就是通過一定的并發(fā)控制機(jī)制使沖突操作串行執(zhí)行。目前,廣泛采用的并發(fā)控制方法是以鎖為基礎(chǔ)的并發(fā)控制算法,通常采用嚴(yán)格的兩段封鎖(two-phase lock,2PL)協(xié)議來實(shí)現(xiàn)并發(fā)控制,另外,還有時(shí)間戳方法及樂觀方法。
1.分布式事務(wù)可串行化
在集中式數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)歷程H,如果等價(jià)于一個(gè)串行歷程,則稱歷程H是可串行化的。而在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,則將分布事務(wù)的可串行性調(diào)度轉(zhuǎn)化為以場(chǎng)地為基礎(chǔ)的子事務(wù)的可串行性調(diào)度。
若存在n個(gè)分布式事務(wù)T1,T2,…,Tn在m個(gè)場(chǎng)地上S1,S2,…,Sm上的并發(fā)執(zhí)行,如果每個(gè)場(chǎng)地Si上局部歷程(H(Si))是可串行化的,并且存在Ti<Tj。如果存在一個(gè)總序E,也滿足Ti<Tj,則我們說: E是可串行化的。
2.基于鎖的并發(fā)控制方法
(1)兩段封鎖協(xié)議(2PL): 其封鎖方法要求事務(wù)在對(duì)一數(shù)據(jù)項(xiàng)進(jìn)行操作之前必先對(duì)該數(shù)據(jù)項(xiàng)封鎖,封鎖成功后才能進(jìn)行操作。若該數(shù)據(jù)項(xiàng)已經(jīng)被其他事務(wù)封鎖,且為沖突操作,則該事務(wù)必處于等待狀態(tài),直到該數(shù)據(jù)對(duì)象被釋放為止。兩段封鎖協(xié)議的實(shí)現(xiàn)思想是將事務(wù)中的加鎖操作和解鎖操作分兩階段完成,并要求并發(fā)執(zhí)行的多個(gè)事務(wù)要在對(duì)數(shù)據(jù)操作之前進(jìn)行加鎖,且每個(gè)事務(wù)中的所有加鎖操作要在解鎖操作以前完成。兩段封鎖協(xié)議分為基本的兩段封鎖協(xié)議和嚴(yán)格的兩段封鎖協(xié)議。具體過程同集中式數(shù)據(jù)庫(kù)中的兩段封鎖協(xié)議。
(2)對(duì)復(fù)制數(shù)據(jù)的封鎖方法: 在分布式數(shù)據(jù)庫(kù)中,為提高系統(tǒng)的可用性、可靠性及存取效率,常在多個(gè)場(chǎng)地上存放多個(gè)數(shù)據(jù)庫(kù)的副本,當(dāng)系統(tǒng)的某一或多個(gè)場(chǎng)地發(fā)生故障時(shí),可通過其他場(chǎng)地上的數(shù)據(jù)副本完成數(shù)據(jù)處理。但同時(shí)也增加了系統(tǒng)選擇副本及處理多副本更新等相應(yīng)處理功能,即增加了系統(tǒng)的復(fù)雜性。通常多副本的并發(fā)控制方法分為基于特定副本的封鎖方法和基于投票的封鎖方法。基于特定副本的封鎖方法又分為主副本法、主場(chǎng)地法和后備場(chǎng)地的主場(chǎng)地法。
主副本法(primary copy)規(guī)定每一數(shù)據(jù)項(xiàng)在某個(gè)場(chǎng)地上的副本為主副本,通常主副本選擇在用戶申請(qǐng)封鎖某數(shù)據(jù)項(xiàng)較多的場(chǎng)地,該場(chǎng)地也稱為主場(chǎng)地。所有封鎖申請(qǐng)由主副本所在場(chǎng)地的鎖管理器LM(lock manager)完成。采用主副本法,降低了通信費(fèi)用,但也降低了并發(fā)程度。
主場(chǎng)地法(primary site)規(guī)定保存副本的某個(gè)場(chǎng)地為主場(chǎng)地,所有封鎖申請(qǐng)由主場(chǎng)地的鎖管理器(lock manager,LM)完成。即系統(tǒng)中的所有封鎖申請(qǐng)都要傳到主場(chǎng)地,由主場(chǎng)地決定是否同意封鎖請(qǐng)求。由于在主場(chǎng)地法中,所有鎖申請(qǐng)由一個(gè)場(chǎng)地處理,易形成瓶頸,當(dāng)主場(chǎng)地出故障時(shí),整個(gè)系統(tǒng)將癱瘓。
后備場(chǎng)地的主場(chǎng)地法(primary site with backup site)為防止主場(chǎng)地故障,設(shè)立另一個(gè)場(chǎng)地為后備主場(chǎng)地,當(dāng)主場(chǎng)地發(fā)生故障后,由后備主場(chǎng)地頂替主場(chǎng)地。
3.基于投票的封鎖方法
(1)讀-寫全體法(read one-write all):指當(dāng)事務(wù)對(duì)某一數(shù)據(jù)項(xiàng)加鎖時(shí),若為讀鎖,只需封鎖其中一個(gè)副本,即只需向選中的副本所在場(chǎng)地發(fā)送鎖申請(qǐng)報(bào)文;若為寫鎖,必須封鎖所有副本,即需要向所有存有該數(shù)據(jù)項(xiàng)的副本所在場(chǎng)地發(fā)送鎖申請(qǐng)報(bào)文。因此,在寫鎖情況下通信費(fèi)用較大,為避免該不足,提出了多數(shù)副本法。
(2)多數(shù)副本法(majority copy): 指對(duì)數(shù)據(jù)項(xiàng)進(jìn)行加鎖時(shí),必須封鎖數(shù)據(jù)項(xiàng)一半以上的副本。無論讀鎖還是寫鎖申請(qǐng),都要向n個(gè)副本中的至少(n+1)/2個(gè)副本所在場(chǎng)地發(fā)加鎖請(qǐng)求。申請(qǐng)成功后,若為讀鎖,讀取一個(gè)副本的值;若為寫鎖,需向n個(gè)副本發(fā)送新值。
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。