◆楊貽宏
面向嵌入式實時數(shù)據(jù)庫系統(tǒng)的并發(fā)控制策略的探討
◆楊貽宏
(上海飛旗網(wǎng)絡(luò)技術(shù)有限公司 上海 201203)
近年來,嵌入式數(shù)據(jù)庫(RTDBS)被廣泛應(yīng)用在各種嵌入式產(chǎn)品之中。作為一種重要的計算機信息處理手段,嵌入式數(shù)據(jù)庫系統(tǒng)能夠?qū)崿F(xiàn)數(shù)據(jù)的最佳性能的儲存和恢復功能。同時,嵌入式實時數(shù)據(jù)庫系統(tǒng)在進行運作時,系統(tǒng)能夠依據(jù)環(huán)境實時反應(yīng),為用戶分析提供最新最佳的數(shù)據(jù)。由此可見,實時性嵌入系統(tǒng)對電子信息市場進行了有效地改革。本文對嵌入式實時數(shù)據(jù)庫系統(tǒng)的并發(fā)控制策略進行了探討,希望能為嵌入式系統(tǒng)更好服務(wù)信息領(lǐng)域提供理論依據(jù)。
嵌入式數(shù)據(jù)庫;并發(fā)控制策略;探討;理論依據(jù)
隨著企業(yè)數(shù)據(jù)庫的不斷深化,傳統(tǒng)的企業(yè)數(shù)據(jù)庫如Oracle、Sybase已經(jīng)不能滿足企業(yè)嵌入式使用要求。常見的嵌入實時數(shù)據(jù)庫如BerkeleyDB、LevelDB、SQLite能夠為用戶提供高速、高量的信息數(shù)據(jù)處理功能。在傳統(tǒng)的數(shù)據(jù)基礎(chǔ)上,嵌入實時數(shù)據(jù)庫能保障數(shù)據(jù)精準、可靠、符合邏輯。兼并實時數(shù)據(jù)處理和嵌入式數(shù)據(jù)系庫的特征,嵌入式實時數(shù)據(jù)庫還具備實時嵌入、主動分析等功能。因此也被廣泛應(yīng)用在我國軍事、航天、工業(yè)制造、人工智能、電氣家用和智能建筑中??梢?,對嵌入式實時數(shù)據(jù)庫系統(tǒng)的研究分析是當代信息技術(shù)行業(yè)的發(fā)展重點。
和傳統(tǒng)的數(shù)據(jù)庫有著明顯的不同,實時數(shù)據(jù)庫對數(shù)據(jù)庫中的“一致性”要求各有利弊。傳統(tǒng)數(shù)據(jù)庫重點是實現(xiàn)可串行化,實時數(shù)據(jù)庫系統(tǒng)并發(fā)控制目的是保持數(shù)據(jù)一致邏輯性,具有著ACID的特性。在并發(fā)控制計算中,受到數(shù)據(jù)庫執(zhí)行的影響,事務(wù)往往會出現(xiàn)阻礙或者無期限的延遲。這是因為可串行化標準過于嚴格而實時數(shù)據(jù)庫系統(tǒng)有需要滿足數(shù)據(jù)時態(tài)一致性。為了減少數(shù)據(jù)遲緩對效率的影響,可以采取通過改編方式放寬可串行化的標準,讓更多的事務(wù)通過并滿足滿足截止期,兼顧可串行化編制和時態(tài)一致性的要求。這種方式利用了實時數(shù)據(jù)在特殊時間間隔的刷新,在此背景下,并發(fā)引入的一致性在數(shù)據(jù)庫中被弱化,因而數(shù)據(jù)內(nèi)容不會存在過于明顯的不一致偏差。利用這個特征,借助局外不一致性的補倉技術(shù)可以進行補救,讓其盡快恢復一致。
根據(jù)企業(yè)發(fā)展模式,東軟集團開發(fā)了如Open BASE Lite嵌入式數(shù)據(jù)庫產(chǎn)品。它能實現(xiàn)標準的SQL語法、ACID事務(wù)特性,為企業(yè)數(shù)據(jù)分析提供了標準化開發(fā)JDBC、ODBC接口,能有利于實時數(shù)據(jù)庫并發(fā)控制。
通過分析嵌入式實時數(shù)據(jù)庫的并發(fā)特征可知,并發(fā)控制的過程利用了傳統(tǒng)非實時數(shù)據(jù)庫作為媒介從而實現(xiàn)控制目的。實際上,要實現(xiàn)嵌入式實時數(shù)據(jù)的并發(fā)控制,對數(shù)據(jù)庫的軟件環(huán)境和應(yīng)用場景有著重要要求。
隨著近年來我國科研的不斷突破,我國在嵌入式實時數(shù)據(jù)庫方面已經(jīng)取得了大量的理論研究成果。并提出了基于鎖、時間戳等實時數(shù)據(jù)庫并發(fā)控制方法。本文針對正確性標準和傳統(tǒng)并發(fā)控制協(xié)議兩個方面的實時性改造,同時分析事務(wù)替代特征的并發(fā)控制,做出了以下探討。
2.2.1時標排序形式的并發(fā)控制
此類并發(fā)控制又被簡稱為TO。他的處理方式是將每一事務(wù)Ti均給予一個時標ts(Ti)。如在進程中出現(xiàn)事務(wù)Ti的操作請求指令與已在處理的事務(wù)Tj發(fā)生沖突。也存在且ts(Tj)>ts(Ti)的情況。就按照設(shè)置判定Ti夭折。同時,當發(fā)生夭折事務(wù)時,更大的時標將會覆蓋當前,程序重新開始。
2.2.2鎖式方式的并發(fā)控制
傳統(tǒng)的2PL鎖式協(xié)議不能滿足實時數(shù)據(jù)庫的需求。面對更為高級的“優(yōu)先級顛倒”和“死鎖”,需要采取正確的并發(fā)控制策略。
(1)對TR優(yōu)先級處理:通過提高“占有”和“請求”的TR優(yōu)先級順序,能夠解鎖優(yōu)先級順序顛倒,讓TH適應(yīng)環(huán)境執(zhí)行命令直到結(jié)束。不過,可能TR的阻塞無期限延時。
(2)改變夭折順序:通過選擇夭折的先后順序,對高優(yōu)先級TR進行執(zhí)行,對低優(yōu)先級的TH進行夭折,這是優(yōu)先級顛倒的一個處理方式。不過可能會造成系統(tǒng)出現(xiàn)導致循環(huán)夭折情況。
(3)指定置頂優(yōu)先級:要實現(xiàn)一個事務(wù)對一個數(shù)據(jù)鎖的獲取,需要讓其優(yōu)先級高于數(shù)據(jù)庫內(nèi)所有的優(yōu)先級事務(wù)。不然不能獲取數(shù)據(jù)鎖還會造成數(shù)據(jù)的堵塞。通過指定置頂優(yōu)先級,采用一種設(shè)置數(shù)據(jù)優(yōu)先級的方法獲取順序,可以實現(xiàn)動態(tài)的指定每一數(shù)據(jù)優(yōu)先獲取數(shù)據(jù)所有事務(wù)存讀的優(yōu)先級,將其他被鎖住的數(shù)據(jù)優(yōu)先級考慮除外。實現(xiàn)“優(yōu)先置頂”,降低數(shù)據(jù)堵塞風險。
(4)共享數(shù)據(jù):為了保障可串行化的執(zhí)行,一種特殊的“共享數(shù)據(jù)”模式的鎖間關(guān)系保障了事務(wù)讀取的流暢性。在實施時,事務(wù)Tj在獲取Ti事務(wù)的共享數(shù)據(jù)的鎖后,需要等待直到Ti結(jié)束后才能執(zhí)行對應(yīng)的Tj信息提交和對應(yīng)數(shù)據(jù)操作。
“樂觀”并發(fā)控制又被業(yè)內(nèi)稱之為(OCC),它發(fā)生的情況比較特殊。如在可串行化要求下,是不能在提交時分析超低沖突發(fā)生率的事務(wù)在無障礙運行的環(huán)境下沖突發(fā)生的過程。因為,提交過程不具備分析沖突能力,只能判斷通過與否,事務(wù)若通過檢驗就會被提交,若沒有就不提交。
為此可以采取分段事務(wù)執(zhí)行的方式。將事務(wù)執(zhí)行拆分為讀、驗證、寫三個階段。三段在通過事務(wù)判斷時候能夠進行分別驗證,能夠?qū)_突發(fā)生的階段進行分析和讀取。
“散度控制”是ε類型的可串行化并發(fā)控制的特征,此種方式的關(guān)系是對允許度的不一致性控制。常見的方式有樂觀散度控制法、兩段鎖散度控制、時標排序散度控制等。
Quas類型的可串行化并發(fā)控制有著準一致可串行化的特征。存在于事務(wù)集中單一事務(wù)提交狀態(tài)和精確串行調(diào)度要求差距允許數(shù)據(jù)范圍內(nèi)。
傳統(tǒng)并發(fā)控制的策略核心是通過提高實時事務(wù)的優(yōu)先級并減低資源可控度從而保護硬性實時事務(wù)。然而這種策略一定程度上只是將事務(wù)外部進行了處理,對內(nèi)部事務(wù)的成因沒有進行探討。當系統(tǒng)中真實發(fā)生硬性實時事務(wù)沖突現(xiàn)象,這些策略不能保全優(yōu)先級較低的事務(wù),這些缺乏安全保護的事務(wù)會不斷出現(xiàn)夭折;與此同時,優(yōu)先級事務(wù)資源區(qū)域也會發(fā)生更加嚴重的沖突,嚴重情況下會導致系統(tǒng)崩潰??梢姡瑐鹘y(tǒng)的開發(fā)控制策略需要改進。而采取功能替代性的方式能夠讓事務(wù)實現(xiàn)多路徑執(zhí)行。它的特點是若存在路徑失敗,可以有選擇地用另一臺進行替代,這提高了事務(wù)通過的成功率。
在推動嵌入式數(shù)據(jù)庫和實時信息不斷發(fā)展的同時,人們對事務(wù)處理的速度、數(shù)據(jù)加密鎖的建設(shè)加大關(guān)注。嵌入式設(shè)備的廣泛應(yīng)用對實時數(shù)據(jù)系統(tǒng)的建設(shè)也提出了高難度要求。本文通過對嵌入式實時數(shù)據(jù)系統(tǒng)的并發(fā)控制探討,對現(xiàn)有的控制方法和使用問題進行了一定分析,對事務(wù)沖突處理中存在的數(shù)據(jù)并發(fā)控制、可串行化、優(yōu)先級問題進行了探討,希望能為相關(guān)工作人員有所幫助。
[1]王曉燕.基于嵌入式實時數(shù)據(jù)庫的事務(wù)模型及處理技術(shù)的探討[J].辦公自動化,2014.
[2]徐艇.嵌入式實時數(shù)據(jù)庫存取機制研究[J].科技風,2010.
[3]戴華珍.嵌入式實時數(shù)據(jù)庫面向方面的QoS探討[J].科技信息,2011.
[4]自動化技術(shù)、計算機技術(shù)[J].中國無線電電子學文摘,2011.
[5]劉云生,夏家莉,許貴平.嵌入式數(shù)據(jù)庫系統(tǒng)的事務(wù)調(diào)度[J].軟件學報,2002.