国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 信息時代 > 高級事務(wù)模型(數(shù)據(jù)庫)

高級事務(wù)模型(數(shù)據(jù)庫)

時間:2022-12-22 04:30:01 | 來源:信息時代

時間:2022-12-22 04:30:01 來源:信息時代

    高級事務(wù)模型 : 相對傳統(tǒng)事務(wù)模型而言對具有某種內(nèi)部結(jié)構(gòu)的事務(wù)的總稱。傳統(tǒng)的事務(wù)概念及其ACID性質(zhì)在大多數(shù)應(yīng)用中是非常有用的,構(gòu)成了數(shù)據(jù)庫事務(wù)處理系統(tǒng)的基礎(chǔ)。傳統(tǒng)的事務(wù)只涉及單一數(shù)據(jù)庫,僅包括對單一數(shù)據(jù)庫的讀/寫,事務(wù)本身并沒有內(nèi)部結(jié)構(gòu)。但是,在一些復(fù)雜的應(yīng)用中,事務(wù)可能涉及多個數(shù)據(jù)庫,事務(wù)處理的時間也可能很長。例如在CAD/CAM、辦公自動化、軟件開發(fā)環(huán)境中,事務(wù)可能持續(xù)幾個小時或幾天,可能訪問不同服務(wù)器上的多個數(shù)據(jù)。為這樣的長事務(wù)或者分布式事務(wù)保持隔離性和原子性會給系統(tǒng)的性能帶來很大的負擔(dān)。將一個事務(wù)分解成一些更小的、相互關(guān)聯(lián)的部分,即為事務(wù)引入某種結(jié)構(gòu),是一種可行的辦法。因此,事務(wù)模型被擴展為各種高級事務(wù)模型。這些高級事務(wù)模型的共性是它們不再要求嚴(yán)格保持事務(wù)的ACID性質(zhì),而是在不同程度上放寬了事務(wù)對原子性和隔離性的要求。
1. 分布式事務(wù)
分布式事務(wù)(distributed transaction)是指在分布式數(shù)據(jù)庫上執(zhí)行的事務(wù)。分布式數(shù)據(jù)庫是由分布存儲在網(wǎng)絡(luò)若干個結(jié)點上的數(shù)據(jù)構(gòu)成,每個場地的數(shù)據(jù)由獨立于其他場地的DBMS進行管理,因此,分布式事務(wù)通常由在不同結(jié)點的數(shù)據(jù)庫服務(wù)器上的子事務(wù)組成。分布式事務(wù)也稱全局事務(wù)(global transaction),每個結(jié)點上的事務(wù)稱為子事務(wù)(subtransaction)。每個服務(wù)器上的子事務(wù)要保持局部數(shù)據(jù)庫的ACID性質(zhì),同時系統(tǒng)還要維護全局事務(wù)的ACID性質(zhì)。分布式事務(wù)的全局原子性(global atomicity)是指每個子事務(wù)在它所運行的局部數(shù)據(jù)庫上具有原子性,并且所有的子事務(wù)或者全部提交或者全部異常中止。因此,當(dāng)分布式事務(wù)的一個子事務(wù)完成了,它不能馬上提交,因為其他子事務(wù)可能異常中止,從而造成所有其他子事務(wù)也都必須異常中止。分布式事務(wù)的全局隔離性(global isolation)是指分布式事務(wù)的每個子事務(wù)在它所運行的局部數(shù)據(jù)庫上具有隔離性,而且分布式事務(wù)作為一個整體和其他分布式事務(wù)之間也具有隔離性。
分布式事務(wù)的全局原子性是由二階段提交協(xié)議(two-phase commit protocol)來保證的,其大致過程如下: 第一階段: 投票階段。由事務(wù)協(xié)調(diào)者將事務(wù)提交命令發(fā)給全部參加該事務(wù)的各局部數(shù)據(jù)庫,局部數(shù)據(jù)庫在收到這個命令后決定是中止還是提交本地的子事務(wù),并向本地的日志寫入abort或者prepare的信息,然后發(fā)送相應(yīng)的消息給事務(wù)協(xié)調(diào)者。第二階段: 終止階段。協(xié)調(diào)者在收到全部子事務(wù)發(fā)回的同意提交的消息后,向日志寫入commit信息,然后向各子事務(wù)發(fā)出提交的命令。如果協(xié)調(diào)者收到了一個或者以上的不同意提交的消息,向日志寫入abort信息,然后向各子事務(wù)發(fā)出回滾的命令。各局部數(shù)據(jù)庫在收到提交命令后,向日志寫入commit信息并給協(xié)調(diào)者回復(fù)應(yīng)答信息,實際執(zhí)行局部提交動作。如果收到的是回滾命令,則向日志寫入abort信息并給協(xié)調(diào)者回復(fù)應(yīng)答信息,執(zhí)行實際回滾動作。最后,協(xié)調(diào)者在收到了全部子事務(wù)的應(yīng)答信息后,在日志中寫入事務(wù)結(jié)束標(biāo)志,結(jié)束該事務(wù)。
分布式事務(wù)的全局隔離性是通過適當(dāng)?shù)牟l(fā)控制機制來保證的,即確保分布式事務(wù)之間存在某種全局可串行化的執(zhí)行序列。全局可串行化(global serializability)表示兩個分布式事務(wù)T1和T2的子事務(wù)在所有局部數(shù)據(jù)庫上是可串行化的,而且這個串行化的次序在所有的結(jié)點是一致的。
最有影響的分布式事務(wù)模型是由X/Open組織于1996年開發(fā)的X/Open DTP(X/Open Distributed Transaction Processing)模型,它是兩階段提交(2-PC)協(xié)議的標(biāo)準(zhǔn)。
2. 嵌套事務(wù)
嵌套事務(wù)(nested transaction)是按照樹結(jié)構(gòu)組織的多個子事務(wù)的集合。采用自頂向下的方法將一個復(fù)雜事務(wù)按照功能劃分(而不是按照數(shù)據(jù)分布)為若干子事務(wù)。與分布式事務(wù)要么全做要么全不做的處理方法不同,嵌套事務(wù)中的各個子事務(wù)的異常中止不會導(dǎo)致整個事務(wù)的異常中止。但是,嵌套事務(wù)作為一個整體仍然保持全局隔離性和原子性。
嵌套事務(wù)可以用一棵樹來表示,根結(jié)點稱為頂層事務(wù),其他結(jié)點稱為子事務(wù),它可以是嵌套事務(wù),也可以是普通事務(wù),稱為平坦事務(wù)(flat transaction),樹葉一級的事務(wù)稱為葉子事務(wù),它一定是平坦事務(wù)。子事務(wù)只有在其父事務(wù)開始后才可以開始,而父事務(wù)只有在所有的子事務(wù)全部結(jié)束后才能提交。一個父事務(wù)創(chuàng)建的子事務(wù)可以順序執(zhí)行,也可以并發(fā)執(zhí)行。但父事務(wù)不會與其子事務(wù)并發(fā)執(zhí)行。
嵌套事務(wù)以及其子事務(wù)具有隔離性。一個子事務(wù)(包括其所有后代子事務(wù))可以看作一個隔離單位,與其并發(fā)執(zhí)行的同層兄弟事務(wù)看不到其內(nèi)部結(jié)構(gòu),因此與并發(fā)執(zhí)行的兄弟事務(wù)之間滿足可串行性。即與它們按某種次序順序執(zhí)行的結(jié)果是一樣的。進一步地,整個嵌套事務(wù)的層次結(jié)構(gòu)也不為其他頂層事務(wù)所見,因此是全局隔離的。
嵌套事務(wù)以及其子事務(wù)具有原子性。每個子事務(wù)可以獨立地提交或異常中止,但是子事務(wù)的最終提交還依賴于其父事務(wù)。如果父事務(wù)異常中止,則該事務(wù)的所有子事務(wù)必須中止。只有當(dāng)所有的祖先事務(wù)都提交了,即整個嵌套事務(wù)提交了,每個子事務(wù)才最終提交并保持持久性。如果某個子事務(wù)異常中止,那么它對數(shù)據(jù)庫的影響會被消除,但是,此子事務(wù)中止的狀態(tài)返回給父事務(wù)后,父事務(wù)可以采取適當(dāng)?shù)牟僮?比如觸發(fā)另一個子事務(wù)執(zhí)行一個替換性操作。這樣,一個異常中止的子事務(wù)會影響父事務(wù)的執(zhí)行路徑,這和傳統(tǒng)的平坦事務(wù)的情形不同。
嵌套事務(wù)作為一個整體需要保持一致性,但是子事務(wù)不一定保持一致性。
3. 多層事務(wù)
多層事務(wù)(multilevel transaction)是將事務(wù)分解為若干嵌套的子事務(wù),其目的是為了提高系統(tǒng)的性能。但是不同于嵌套事務(wù),多層事務(wù)中的全部葉子事務(wù)必須在同一個層次上,而且只有葉子事務(wù)才能訪問數(shù)據(jù)庫。多層事務(wù)中的子事務(wù)可以在整個事務(wù)成功提交之前提交并釋放它們所占用的資源,從而允許在該資源上等待的其他事務(wù)提前執(zhí)行,提高了并發(fā)執(zhí)行的效率。但是這也造成了其他并發(fā)的事務(wù)可以存取到該多層事務(wù)的中間結(jié)果,若調(diào)度不當(dāng),會危及事務(wù)的隔離性。
多層事務(wù)具有隔離性。由于并發(fā)事務(wù)可能看到不一致的數(shù)據(jù)庫狀態(tài)(因為可以看到其他并發(fā)事務(wù)的中間狀態(tài)),因此,需要引進一種特殊的多層并發(fā)控制(multilevel concurrency control)策略才能保證多層事務(wù)的隔離性。其基本思想如下: 逐層實施并發(fā)控制,某層的并發(fā)控制為上一層事務(wù)提供可串行化的保證。這樣,盡管子事務(wù)不一定滿足數(shù)據(jù)庫完整性約束,多層事務(wù)作為一個整體仍然滿足完整性約束。
多層事務(wù)具有原子性。如果一個多層事務(wù)被異常中止,原子性要求所有已提交的子事務(wù)都要撤消。由于子事務(wù)的提交并不依賴于其父事務(wù)的提交,它對數(shù)據(jù)項所作的修改可能已經(jīng)被其他并發(fā)事務(wù)存取,因此其撤銷操作比平坦事務(wù)復(fù)雜得多,需要通過運行補償子事務(wù)(compensating subtransaction)完成。一個補償事務(wù)清除一個已提交事務(wù)的執(zhí)行結(jié)果。作為應(yīng)用系統(tǒng)設(shè)計的一部分,要為每一個子事務(wù)設(shè)計一個補償子事務(wù)。一般地,如果第Li-1級的子事務(wù)STi-1,1,…,STi-1,k都提交以后,需要異常中止第Li級的父事務(wù)STi,j,此時要以逆序執(zhí)行補償事務(wù):CTi-1,k,…,CTi-1,1,其中CTi-1,1是STi-1,1的補償事務(wù)。
4. 鏈?zhǔn)绞聞?wù)
鏈?zhǔn)绞聞?wù)(chained transaction)是一個子事務(wù)序列,當(dāng)序列中的一個事務(wù)提交后,自動啟動下一個事務(wù)的執(zhí)行。有時候,一個長事務(wù)可以分解成一系列前后相連的子事務(wù),形成鏈?zhǔn)绞聞?wù)。除了啟動序列中的第一個事務(wù),其他事務(wù)的啟動沒有begin_transaction()所產(chǎn)生的開銷。另外,當(dāng)序列中的一個子事務(wù)提交后,它對數(shù)據(jù)庫所作的修改具有持久性。這樣做的好處是在事務(wù)執(zhí)行過程中如果系統(tǒng)崩潰了,則在該事務(wù)之前完成的那些子事務(wù)所作的修改在系統(tǒng)重啟后可以保持下來,避免重做長事務(wù)。但是,鏈?zhǔn)绞聞?wù)作為一個整體就不再具有原子性和隔離性,因為如果系統(tǒng)崩潰了,系統(tǒng)不會重新執(zhí)行序列中未完成的事務(wù)。如同多層事務(wù),可以用補償事務(wù)機制來強化鏈?zhǔn)绞聞?wù)的原子性和隔離性。
隨著IT技術(shù)不斷發(fā)展,未來的事務(wù)管理也隨之需要研究如何在新的環(huán)境中提供更多的功能和更好的性能。例如,面向企業(yè)業(yè)務(wù)流程建模的工作流,可以看成是由一系列的任務(wù)通過層次或序列的方法合成得到的具有更加復(fù)雜結(jié)構(gòu)的事務(wù),可以稱為工作流事務(wù);為了滿足Web應(yīng)用所需要的一致性和可靠性而引進Web服務(wù)事務(wù)(Web services transaction); 為網(wǎng)絡(luò)上通過共享計算資源進行分布式計算的網(wǎng)格(gird)系統(tǒng)引進的網(wǎng)格事務(wù)(grid transaction)等現(xiàn)代事務(wù)模型。

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉