資源描述:
《實(shí)時(shí)數(shù)據(jù)庫事務(wù)的研究與實(shí)現(xiàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、實(shí)時(shí)數(shù)據(jù)庫事務(wù)的研究與實(shí)現(xiàn):根據(jù)設(shè)計(jì)的實(shí)時(shí)數(shù)據(jù)庫操作類型,對實(shí)時(shí)事務(wù)進(jìn)行了分類,時(shí)間性是實(shí)時(shí)事務(wù)重要屬性,提供了實(shí)時(shí)事務(wù)的時(shí)間性、原子性、并發(fā)性以及優(yōu)先級分配的策略,對實(shí)時(shí)事務(wù)進(jìn)行有效的調(diào)度。 關(guān)鍵詞:實(shí)時(shí)事務(wù);事務(wù)調(diào)度;時(shí)間性 :TP311.13:A:1007-9599(2011)20-0000-01 TheResearchandImplementationofReal-TimeDatabase EngineeringResearchInstitute,Beijing100083,China) Abstract:Basedonthedesignoftheoperat
2、iontypeinreal-timedatabase,thereal-timetransactionsareclassified.Timingisanimportantpropertyofreal-timetransaction.eing,atomicity,concurrencyandprioritydistributionandeffectiveschedulingofreal-timetransactions. Keyetransaction;Transactionschueduling;Timing 一、引言 實(shí)時(shí)數(shù)據(jù)庫是實(shí)時(shí)特性和數(shù)據(jù)庫相結(jié)合的系統(tǒng),實(shí)時(shí)數(shù)據(jù)庫的
3、數(shù)據(jù)和事務(wù)都有顯式的定時(shí)限制,正確性不僅依賴于事務(wù)產(chǎn)生的邏輯結(jié)果,更依賴于邏輯結(jié)果產(chǎn)生的時(shí)間。我們實(shí)時(shí)數(shù)據(jù)庫中的事務(wù)是為保證一系列重要操作,或者系列操作所觸發(fā)出的結(jié)果的ACID特性和定時(shí)性,分為周期性和非周期性事務(wù)。由事務(wù)調(diào)度管理器負(fù)責(zé)調(diào)度事務(wù),根據(jù)截止期進(jìn)行優(yōu)先級分配保證時(shí)間性,利用內(nèi)存日志保證原子性,不同的鎖來保證并發(fā)性?! 《?、實(shí)時(shí)事務(wù)的研究 實(shí)時(shí)事務(wù)也是以一系列操作作為單個邏輯單元的,除了傳統(tǒng)數(shù)據(jù)庫事務(wù)的ACID屬性,還有定時(shí)性的要求,實(shí)時(shí)事務(wù)必須在某個時(shí)間段或截止期內(nèi)完成,否則就會造成嚴(yán)重的后果。不同于傳統(tǒng)數(shù)據(jù)庫將操作事務(wù)化,實(shí)時(shí)數(shù)據(jù)庫的事務(wù)只是針對一些重要的數(shù)據(jù)操
4、作,以及一些統(tǒng)計(jì)以及觸發(fā)的操作。實(shí)時(shí)事務(wù)從大的方面都可以劃分為硬實(shí)時(shí)事務(wù)、軟實(shí)時(shí)事務(wù)和固實(shí)時(shí)事務(wù)。我們針對系統(tǒng)的需求進(jìn)行劃分和處理。 ?。ㄒ唬?shí)時(shí)事務(wù)的分類。我們實(shí)時(shí)數(shù)據(jù)庫的操作分為以下幾種:(1)實(shí)時(shí)數(shù)據(jù)采集,從采集到更新前的初步處理和觸發(fā),以及出現(xiàn)問題的報(bào)警。(2)實(shí)時(shí)數(shù)據(jù)結(jié)構(gòu)的處理,針對廠、設(shè)備、不同點(diǎn)結(jié)構(gòu)的在線增刪改,針對靜態(tài)報(bào)警條件的在線修改,以及對于配置文件的更改。(3)實(shí)時(shí)計(jì)算,針對某些組合點(diǎn)的計(jì)算以及推理。(4)組合報(bào)警,對于組合點(diǎn)滿足報(bào)警條件的報(bào)警處理。(5)數(shù)據(jù)歸檔,對于實(shí)時(shí)數(shù)據(jù)的歸檔,以及對歸檔數(shù)據(jù)的查詢統(tǒng)計(jì)?! ∥覀儼堰@幾類定義的操作封裝為實(shí)時(shí)事務(wù),從操
5、作中我們可以歸納出我們的實(shí)時(shí)事務(wù)分為周期性事務(wù)和非周期性的事務(wù),比如實(shí)時(shí)數(shù)據(jù)采集,實(shí)時(shí)計(jì)算和組合報(bào)警都是周期性的事務(wù),其它的都是非周期性的事務(wù)。對于周期性的事務(wù)一般都涉及到實(shí)時(shí)數(shù)據(jù),需要系統(tǒng)對這些事務(wù)立刻進(jìn)行處理,滿足時(shí)間性的要求。對于非周期性的事務(wù),通過截止期安排優(yōu)先級來調(diào)度執(zhí)行?! 。ǘ┰有?。對于不同的事務(wù)采用不同的原子性策略,原子性一般用于有寫操作的地方。而事務(wù)的不同也只能采取不同的策略。對于實(shí)時(shí)事務(wù)來說,并不同于一般事務(wù)的原子性情況,實(shí)時(shí)事務(wù)原子性策略有幾種:一種是將事務(wù)恢復(fù)到原狀態(tài),一種是只產(chǎn)生報(bào)警信息,最后一種是什么也不做。我們對事物采取的策略都是力圖使事務(wù)操作
6、的改變恢復(fù)到原始的狀態(tài),以免影響后續(xù)的實(shí)時(shí)數(shù)據(jù)的組織。我們使用內(nèi)存日志的方法來保證事務(wù)的原子性。定義一個日志數(shù)據(jù)結(jié)構(gòu),這個數(shù)據(jù)結(jié)構(gòu)中包含了數(shù)據(jù)操作對象的地址,類型,計(jì)算值,操作對象的位號等,幾乎可以對我們定義的所有事務(wù)進(jìn)行恢復(fù)?! 。ㄈ┎l(fā)性。我們采用加鎖的方式來進(jìn)行并發(fā)控制,我們設(shè)定有三種鎖,共享鎖、保留鎖和排它鎖。共享鎖允許兩個或者更多的連接在同一時(shí)刻讀取數(shù)據(jù),但是不允許其它連接對數(shù)據(jù)庫的寫或者更新操作。保留鎖,是為了說明我馬上就要修改數(shù)據(jù)了,一個線程將要更新數(shù)據(jù),但還沒有開始,其它線程可以讀取數(shù)據(jù),但是不能修改數(shù)據(jù),而且在一個時(shí)刻只能有一個保留鎖的存在。排它鎖不允許有其
7、它的讀或者寫的操作的存在,如果有排它鎖,那么共享鎖就不能生成,如果此時(shí)有以前的共享鎖存在,那么就結(jié)束所有的共享鎖,開始修改更新數(shù)據(jù)?! 。ㄋ模┒〞r(shí)性。實(shí)時(shí)事務(wù)的定時(shí)性是最重要的特性,也是進(jìn)行事務(wù)調(diào)度和優(yōu)先級分配的根本,我們采用最小空余時(shí)間算法來進(jìn)行優(yōu)先級分配,需要知道事務(wù)的到達(dá)時(shí)間,當(dāng)前的時(shí)間,事務(wù)預(yù)計(jì)運(yùn)行的時(shí)間,以及事務(wù)已經(jīng)運(yùn)行的時(shí)間。綜合這些時(shí)間算出的空余時(shí)間越小,那么優(yōu)先級就越高。但是我們前面提到,我們事務(wù)分為周期性事務(wù)和非周期性事務(wù),優(yōu)先級算法主要針對非周期事務(wù),周期性的事務(wù)可以搶占