潘 鵬 李蘭英
[摘要]移動數(shù)據(jù)庫系統(tǒng)(MDS)的事務管理必須運作于諸如低帶寬,電量限制,弱連接,和移動性等很多有限的資源下。由于這些限制,傳統(tǒng)的并行控制機制不能夠維持活動事務的可用性。所以改進的事務調度和并行控制機制必須能夠充分的發(fā)揮MDS的潛能。闡述關于多版本事務處理方法和基于結合時間戳的多版本兩段加鎖的無死鎖并行控制機制。目標模型通過改進的并行度,減少的事務等待時間和更小撤消率提供更高的吞吐量。
[關鍵詞]移動事務 并行 多版本 加鎖
中圖分類號:TP3 文獻標識碼:A 文章編號:1671-7597(2009)0120074-02
一、移動事務處理概述
(一)移動數(shù)據(jù)庫中的事務處理
在移動計算環(huán)境下,有移動終端參與了執(zhí)行的事務稱為移動事務(mobile transaction,MT)。移動事務處理就是要維護移動終端與中心數(shù)據(jù)庫之間的數(shù)據(jù)一致性,提供事務處理的能力。于移動終端的移動性和無線網絡的特點,移動事務和傳統(tǒng)數(shù)據(jù)庫中的一般事務(滿足ACID準則)有一些區(qū)別。
1.由于無線網絡斷接或者計算終端的移動,因此移動終端間或移動終端和中心數(shù)據(jù)庫之的數(shù)據(jù)并不需要時刻保持嚴格一致。
2.由于無線網絡經常斷接,或者移動終端本身的硬件條件有限,移動終端不可能與服務器保持實時連接,因此移動事務很可能是個長時間的事務。
3.在傳統(tǒng)的分布式數(shù)據(jù)庫事務處理過程中斷接被看作是故障,但是在無線計算環(huán)境下,斷接情況被視作是正常的移動數(shù)據(jù)庫應在斷接的情況下依然提供事務處理服務,所以其事務處理方式必然和傳統(tǒng)的數(shù)據(jù)庫技術有所不同。
4.由于移動終端可以在網絡環(huán)境中自由移動,因此事務的狀態(tài),事務訪問的數(shù)據(jù)狀態(tài)以及位置信息都會改變。
(二)現(xiàn)有移動事務的處理模型
鑒于移動事務和傳統(tǒng)事務處理存在上述區(qū)別,因此傳統(tǒng)的事務處理方法不能夠直接用來解決移動環(huán)境下的事務處理。近年來,許多研究機構對移動事務進行了專門的研究,并提出了各種處理模型。
如:M.H.Dunham等人提出的基于全局事務和拆分事務建立的Kangaroo模型。P.K.Chrysanthis在Open-Nested事務模型的基礎上為了適應移動環(huán)境而提出的移動嵌套事務模型。他的模型當中強調了事務的補償?shù)雀拍?,但是這種補償似乎會造成較大的系統(tǒng)開銷。G.D.Walborn和P.K.Chrysanthis提出的基于語義的事務模型的總體思想是總體思想是通過可以交換操作來提高事務的并發(fā)性。Pitoura和B.Bhargava提出的以支持斷接操作、局部連接和模糊數(shù)據(jù)(例如位置信息)的弱事務模型。E.Pitoura和B.Bhargava提出了一種針對移動計算環(huán)境中經常出現(xiàn)的、可預計的、多變的斷接狀況,而設計的一種被稱為“簇模型”的移動事務處理模型。S.K.Madria和B.Bhargava提出了預寫操作以提高移動事務中貢獻數(shù)據(jù)的可訪問性,但是在事務恢復策略上還沒有進一步的討論。J.Jing,O.Bukhres和A.Elmagarmid提出了一種新型的鎖管理策略。
二、移動數(shù)據(jù)處理模型
在多版本事務調度中一個好的移動事務應該存在三個狀態(tài),1.事務開始;2.事務提交;3.事務結束。一個活動的移動事務可能處于三種狀態(tài)的任何一個。一個移動事務能夠在一個移動主機上開始和提交,但是它只能在一個數(shù)據(jù)庫服務器上結束。在約束條件下目標調度在一個數(shù)據(jù)項的不同版本上同時執(zhí)行讀鎖和寫鎖請求,這些約束都是根據(jù)分布式并行數(shù)據(jù)庫數(shù)據(jù)項的鎖請求和瑣維持時間戳指定的。如果一個事務能過成功地提交到服務器就可以間接的證明這個事務執(zhí)行的正確性,而不必要設立單獨的確認段。這個模型要求讀寫操作具有并發(fā)性,即一個Read操作總是能夠得到上一個被提交或被結束的數(shù)據(jù)版本,這個過程中不能被阻塞。
多版本事務(MV-T)機制是通過眾多的移動事務(MT)的執(zhí)行實現(xiàn)的。一個移動事務(MT)在移動主機(MH)上被部分地處理之后,將被提交到服務器上進行最終的處理。關于模型也進行了如下的設定:一個移動事務能夠通過任何移動主機將其提交到服務器中,與此同時服務器也應能夠同時運行被其他主機提交的移動事務。在這整個過程中要注意兩點:1.一個事務成功的將被更新的數(shù)據(jù)項提交到服務器之后,這個事務才真正地完成了在移動主機上的使命;2.在服務器上的移動事務,必須滿足兩個條件:(1)該事務上的所有鎖都被服務器撤銷;(2)該事務成功的將數(shù)據(jù)項更新到數(shù)據(jù)庫系統(tǒng)中。才能被服務器成功的結束。
在本文的目標模型中,通過充分利用移動事務在移動主機中提交和數(shù)據(jù)庫服務器中結束之間的時間,來改進移動事務的并行性。
例子:在同一個數(shù)據(jù)庫服務器的處理范圍中有兩移動主機分別執(zhí)行著兩個事務T1和T2(圖1)。事務T2在事務T1提交以后結束之前開始執(zhí)行。這樣T2就無須為了等待T1結束之后才開始而白白浪費等待時間。如果一個事務允許在移動主機上提交,數(shù)據(jù)項允許被移動主機上的事務改寫之后再傳回數(shù)據(jù)庫服務器,這樣的事務就會比其他事務更具有可用性。
(二)加鎖協(xié)議
我們使用加鎖方法完成數(shù)據(jù)的獨立性和排除層疊的中止行為,利用時間戳來避免死鎖。另外還引進了驗證鎖。一個移動事務(MT)被提交以后它的讀鎖就被修改為驗證鎖。如果移動事務的鎖請求因已被占用而不能得到滿足,這些移動事務(MTs)會被阻塞或中止。對于一個正在向一個數(shù)據(jù)項請求加鎖的移動事務,我們稱為‘請求者;而一個已經擁有數(shù)據(jù)項操作權限的移動事務,我們稱為‘擁有者。當一個‘請求者的時間戳高于‘擁有者的時間戳時,這個‘請求者即被阻塞。
一個移動事務通過讀請求操作可以獲得數(shù)據(jù)項的最新版本。這就是定義的讀規(guī)則,這個規(guī)則適用于所有的讀請求操作。應該注意的是,在樂觀模型中一個移動事務通過讀操作只能讀到數(shù)據(jù)項較老的一個版本。前面提到過,當一個‘請求者不能得到需要的數(shù)據(jù)項時,就會被阻塞,這種行為,就是根據(jù)鎖請求調度程序來實現(xiàn)的,這樣可以有效的避免沖突。
三、結束語
移動數(shù)據(jù)庫系統(tǒng)已被越來越廣泛地應用于各行各業(yè),其關鍵技術之一是移動事務的處理。本文介紹了現(xiàn)有移動事務處理模型,并提出了自己的事務處理方法。本文給出的數(shù)據(jù)庫原型系統(tǒng)在事務處理等方面有的色,具有一定的實用價值。
參考文獻:
[1]曾憲權、馮玉東,移動事務處理技術研究進展,計算機與數(shù)字工程[J].2005,33(12):50-54.
[2]劉云生、丁力,主動實時數(shù)據(jù)庫的事務處理[J].微計算機應用,2007,28(2):163-165.
[3]P.K.Chrysanthis,K.Ramamritham.Synthesis of Extended Transaction Models U-sing ACTA[C].University of Pittsburgh,CS Technical Report 93-05,1993:103-118.
[4]P.K.Chrysanthis:Transaction Processing in Mobile Computing Environment[C].Proceedings of the IEEE Workshop on Advances in Parallel and Distribu-ted Systems,Princetom,New Jersey,October 1993:77-83.
[5]Gkaiser,NHutchinson.Split-Transactions for open-Ended activities[C].In:Proce-edings of the l4,International Conference on VLDB,Los Angeles,California,1988:26-37.
作者簡介:
潘鵬,男,漢,河南開封,哈爾濱理工大學計算機科學與技術學院碩士研究生,主要研究方向:嵌入式數(shù)據(jù)庫。