數(shù)據(jù)庫第7章并發(fā)控制_第1頁
數(shù)據(jù)庫第7章并發(fā)控制_第2頁
數(shù)據(jù)庫第7章并發(fā)控制_第3頁
數(shù)據(jù)庫第7章并發(fā)控制_第4頁
數(shù)據(jù)庫第7章并發(fā)控制_第5頁
免費預(yù)覽已結(jié)束,剩余40頁可下載查看

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

事務(wù)并并發(fā)事務(wù)引起的可串行基于鎖的并發(fā)控制協(xié)*活鎖與*多粒用以促

I/O與CPU等可以并行交叉運并發(fā)執(zhí)改善系統(tǒng)的資源利減少短事務(wù)的等待一個或多個事務(wù)的操作按時間排序的一個序用以促

事務(wù)并并發(fā)事務(wù)引起的可串行基于鎖的并發(fā)控制協(xié)*活鎖與*多粒用以促

讀臟數(shù)據(jù)(dirty臟數(shù)據(jù)(dirtydata)是對未提 寫數(shù)據(jù)的統(tǒng)稱若臟讀就造成了數(shù)據(jù)庫的致狀態(tài),應(yīng)嚴(yán)。若臟讀帶來的影響足夠小,爾可讀一次臟數(shù)據(jù),它可以提并發(fā)性,減少事務(wù)的等待時用以促

不可重復(fù)讀(unrepeatable兩次讀到的值兩次讀到的值在事務(wù)串行執(zhí)行時,不會出現(xiàn)此象的數(shù)據(jù),以事務(wù)T1的兩事務(wù)修改了它用以促

丟失更新(lost由由兩個事務(wù)對同一數(shù)據(jù)地寫入引用以促

事務(wù)并并發(fā)事務(wù)引起的可串行基于鎖的并發(fā)控制協(xié)*活鎖與*多粒用以促

回顧:事務(wù)ACID特性中 性每個事務(wù)依次順序并行但事務(wù)之間并發(fā)執(zhí)行,DBMS調(diào)整事務(wù)的調(diào)度,使其運行果與一次只執(zhí)行一個事務(wù)的結(jié)果用以促

兩兩個串行調(diào)度的結(jié)果不同。但只果并不重用以促

可串行果相同DBMS認為事務(wù)串行調(diào)度的結(jié)果保持了數(shù)據(jù)庫的一致性,都是正確一個調(diào)度如果是可串行化的,系統(tǒng)認為其調(diào)度是一個正確的調(diào)持了數(shù)據(jù)庫的一致用以促

丟失更DBMS需要事務(wù)調(diào)如果將事務(wù)的并發(fā)執(zhí)行完全交給操作系統(tǒng),則任何一種調(diào)度方式可能出有的調(diào)度能保持數(shù)據(jù)庫的一致,有的調(diào)度卻會產(chǎn)生錯誤的結(jié)DBMS必須對事務(wù)的運行加以控制,確保交叉調(diào)度完畢后的結(jié)果與某串行調(diào)度的結(jié)果相同,數(shù)據(jù)庫不會出現(xiàn)不一致的狀用以促

簡記WRITE簡寫為READ簡寫為WT(X):事務(wù)T寫數(shù)據(jù)庫元素RT(X):事務(wù)T讀數(shù)據(jù)庫元素S表示一個調(diào)度調(diào)度(事務(wù)序列)表示S=R1(A)R2(A)W1(A)W2(A)R2(B)R1(B)W2(B)用以促

指 讀相同數(shù)據(jù):若事務(wù)Ti和Tj都 讀寫相 寫相同數(shù)據(jù) 讀寫不同數(shù)據(jù):示S=R1(A)R2(A)W1(A)W2(A)R2(B)R1(B)W2(B)T2事務(wù)的READ(A)與T1事務(wù)的WRITE(A) 指T1事務(wù)的READ(A)與T2事務(wù)的READ(A)指令是 調(diào)調(diào)度中兩個事務(wù)發(fā),必須用以促

令的執(zhí)行順序,得到一個新的調(diào)度S′。稱調(diào)度S與調(diào)度 等價的equivalent)若一個調(diào) 等價于一個串行調(diào)度,則該調(diào)度 可串行化的示調(diào)度S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)R1(B)與W2(A)指令 ,可以交換執(zhí)行順序R1(B)與R2(A)指令 ,可以交換執(zhí)行順序W1(B)與W2(A)指令 ,可以交換執(zhí)行順序W1(B)與R2(A)指令 ,可以交換執(zhí)行順序促調(diào)度S’=R1(A)W1(A)R1(B)W1(B)R2(A)W2(A)R2(B)促調(diào)度S’是一個串行調(diào)調(diào)度S等價于串行調(diào)度S’,可串行化可串行是可串行性的充分調(diào)度運調(diào)度運行結(jié)果與串行度T1→T2→T3的運行果是一致的,但調(diào)度是可串用以促

視圖等 調(diào)度S1和調(diào)度S2不是視圖等價調(diào)度S1中T2的A值是事務(wù)T1修改調(diào)度S2中T2的A值是事務(wù)T1修改前的值用以促

示數(shù)數(shù)據(jù)庫中藥品A、B的最終狀態(tài)都是由事務(wù)T2寫入的事務(wù) 的事務(wù) 的都是數(shù)據(jù)庫的初始事務(wù) 的數(shù)據(jù)都是事務(wù)T1修改后的調(diào)度S和調(diào)度S’是視圖等價的,因為用以促

視圖可串行行化的 舉設(shè)調(diào)度S1=R1(A)W3(A)R2(B)經(jīng)過 調(diào)整,S2=R2(B)R1(A)W1(B)調(diào)度S1和調(diào)度S2 等價的又因為調(diào)度S2為一串行調(diào)度,因此調(diào)度S1 可串行化的對于調(diào)度S1和S2,事務(wù) 的A、事務(wù) 的B都是數(shù)據(jù)庫的始值;數(shù)據(jù)庫最終的A、B值都是由事務(wù)T3和T1寫入的因此,調(diào)度S1和S2是視圖可串行化用以促

判定一個調(diào)度是否 可串行化的,可以使用前圖(precedence若前驅(qū)圖中存在環(huán),則表示調(diào)度S是不可串行化 撲排序得到調(diào)度S的一個等價的串行調(diào)度。前前驅(qū)圖是一個有向圖頂點代表調(diào)度S由Ti→Tj的邊表示在調(diào)度S中Ti和Tj之間存在一 指令并且Ti中的指令先于Tj中的指令執(zhí)行。用以促

示例S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)指令W1(A)在R2(A)前,W1(B)在R2(B)前,因此存在從T1到T2的示例S=R1(A)R2(A)W1(A)W2(A)R2(B)R1(B)W2(B)W1(A)在W2(A)之前,R1(B)在W2(B)之前,因此存在T1到T2的有向R2(A)在W1(A)之前,W2(B)在W1(B)之前,因此存在T2到T1的有向用以促

數(shù)據(jù)庫系統(tǒng)要求所有的調(diào)度都是可恢復(fù)可恢復(fù)條件調(diào)度S中,事務(wù)Ti如了必須等事務(wù)Tj提交后才能提交用以促

事務(wù)在并行執(zhí)行過程中發(fā)生故障,還可個事務(wù)的級聯(lián)回假定T2事務(wù)A的值并修改還有T3事T2若事務(wù)T1發(fā)生故障時,后續(xù)的事務(wù)T2、T3、T4...都已提交,則務(wù)T1的回?zé)o級聯(lián)回滾的調(diào)度應(yīng)滿調(diào)度S中的每對事務(wù)Ti和Tj,事務(wù)Ti了事務(wù)Tj的數(shù)據(jù),則事務(wù)Tj必須在Ti前提即調(diào)度臟數(shù)據(jù)用以促

事務(wù)并并發(fā)事務(wù)引起的可串行基于鎖的并發(fā)控制協(xié)*活鎖與*多粒用以促

先要對將執(zhí)行讀、寫操作的數(shù)據(jù)庫對象申請鎖,在獲得該據(jù)庫對象的控制權(quán)力后,才能進行相應(yīng)地讀、寫操作是實現(xiàn)數(shù)據(jù)庫并發(fā)控制的重 鎖管理器(lock事務(wù)執(zhí)行過程中鎖的申請和釋放由DBMS中的鎖管理器鎖管理 一張哈希表——鎖的事務(wù)。鎖表包含的信息包括:每個數(shù)據(jù)庫對象上已有的鎖的個鎖的類型以及一個指向申請鎖隊列的用以促

鎖的類共享鎖(S鎖):如果事務(wù)Ti申請到數(shù)據(jù)項Q則Ti排它鎖(X鎖):如果事務(wù)Ti申請到數(shù)據(jù)項Q的排它鎖,則可以讀數(shù)據(jù)項Q,也可以寫Q鎖的相用以促

當(dāng)事務(wù)需要操作數(shù)據(jù)項時,它向鎖管理的申請若申請的是一個共享鎖,且申請隊列為空,當(dāng)前數(shù)據(jù)項上沒有排它鎖,則鎖管理器授予鎖,并修改數(shù)據(jù)項的鎖若申請的是一個排它鎖,當(dāng)前也沒有其它的事務(wù)擁有該項上的鎖,則鎖管理器授予鎖,并修改數(shù)據(jù)項的鎖否則,申請的鎖不能馬上授予,鎖申請加入申請隊列,申鎖的事用以促

用以促

兩段鎖協(xié)議(two-phaselockingprotocol,2PL)是 增長階段(growingphase):在對任何數(shù)據(jù)進行讀、寫操作之首先申請并獲得該數(shù)據(jù) 收縮階段(shrinkingphase):在釋放一 后,事務(wù)不再申和獲得其它的任 兩段鎖協(xié)議是保 可串行化的充分條件,但該議不保證不發(fā)生死鎖用以促

兩段鎖協(xié)議的級每每個若T1事務(wù)在WRITE(B)時用以促

嚴(yán)格兩除要求滿足兩段鎖協(xié)議規(guī)定外,還要求事務(wù)的交之后釋放。解決級聯(lián)回滾避免了臟讀和丟失修改的問強兩階除要求滿足兩段鎖協(xié)議規(guī)定外,還要求事務(wù)的所有鎖都必須在事提交之后釋放進一步解決數(shù)據(jù)項不能重復(fù)讀的用以促

兩階段從兩段鎖協(xié)議到嚴(yán)格兩段鎖協(xié)議,再到強兩段鎖協(xié)議,事務(wù)持鎖的時間不斷增長。這不但保證事務(wù)的并發(fā)調(diào)度是但帶來的另一方面的問題是并發(fā)度的降低,以及死鎖出現(xiàn)可能目前,大多數(shù)的DBMS都采用嚴(yán)格兩段鎖協(xié)議或強兩段鎖協(xié)用以促

鎖的升級及更鎖的鎖的概率更新鎖只允許事數(shù)項而不能修改數(shù)據(jù)用以用以致學(xué)更新鎖用以促

事務(wù)并并發(fā)事務(wù)引起的可串行基于鎖的并發(fā)控制協(xié)*活鎖與*多粒用以促

活鎖解解決采用先來先服務(wù)的策略用以促

死死死鎖的兩種處理方一種是進行死鎖的預(yù)防,不讓并執(zhí)行的事務(wù)出現(xiàn)死鎖的狀一種是允許死鎖的發(fā)生,在死鎖現(xiàn)后采取措施解決,為此系統(tǒng)中增加死鎖的檢測及死鎖的解除用以促

順 一 要求事務(wù)在開始執(zhí)行前先申請到所需的所 ,如果有一沒有申請到,則事務(wù)中 用以促

時間先級越高。 Wait-die機制:若Ti優(yōu)先級較高,則Ti可以等待;否則中止事務(wù)TiWound-wait機制:若Ti優(yōu)先級較高,則中止Tj;否則Ti等待示例:假設(shè)事務(wù)T1、T2、T3的時間戳分別為5,10,20在Wait-die機制下 在Wound-wait機制下 用以促

超時現(xiàn)死鎖,此時該事務(wù)本身回滾并重啟。實現(xiàn)簡可能出等待多長時間合適難以把等待圖當(dāng)且僅當(dāng)?shù)却龍D中出現(xiàn)環(huán)路時,表示系統(tǒng)中存在死鎖用以促

死鎖的選擇一個或多個事務(wù)撤銷,釋放這個或這些事務(wù)擁有 撤銷事務(wù)的選為解除死鎖必須回滾處于死鎖狀態(tài)的部分事撤銷事務(wù)的選擇原則是事務(wù)撤銷所需的系統(tǒng)代價最事務(wù)撤銷的程全部回滾選中事務(wù),然后重新開部分回滾選中事務(wù),需 的事務(wù)運行狀態(tài)信息用以促

事務(wù)并并發(fā)事務(wù)引起的可串行基于鎖的并發(fā)控制協(xié)*活鎖與*多粒用以促

對象的大小稱 粒度數(shù)據(jù)庫的邏輯單位,如屬性、元組、關(guān)系、索、數(shù)據(jù)數(shù)據(jù)庫的物理單位,如頁、塊粒度對并發(fā)度和資源消耗 粒度小,則系統(tǒng)并發(fā)度高,資源消耗多 粒度大,則系統(tǒng)并發(fā)度低,資源消耗小不同事務(wù)可能需要不同的粒度,系用以促

意向鎖(intention如果對一個結(jié)點加意向鎖,則意味著要對該的所有子孫結(jié)點顯式加在一個結(jié)點顯式加鎖前,該結(jié)點的所有祖先結(jié)都應(yīng)加上意向用以促

意向鎖意向共

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論