專(zhuān)利名稱(chēng):一種內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及內(nèi)存數(shù)據(jù)庫(kù)的管理方法,特別是一種內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)管理方法。
背景技術(shù):
隨著嵌入式軟件的廣泛應(yīng)用,軟件系統(tǒng)中需要保存的數(shù)據(jù)大量出現(xiàn),內(nèi)存數(shù)據(jù)庫(kù)的需求大量增加,事務(wù)操作是內(nèi)存數(shù)據(jù)庫(kù)最本質(zhì)的操作之一,它的目的就是為了保證一次操作能夠完全進(jìn)行,為了保證事務(wù)操作能夠永久的提交,通常是將內(nèi)存數(shù)據(jù)庫(kù)修改的數(shù)據(jù)保存在非易失的介質(zhì)上后才回應(yīng)事務(wù)提交完成。但在嵌入式系統(tǒng)中,I/O操作時(shí)間要求與嵌入式本身的時(shí)間要求來(lái)比相對(duì)較長(zhǎng),尤其是當(dāng)需要考慮成本的時(shí)候,可能會(huì)選擇I/O性能比較低的物理介質(zhì),這樣寫(xiě)非易失存儲(chǔ)介質(zhì)的時(shí)間相對(duì)來(lái)說(shuō)又會(huì)大大加長(zhǎng)。
由于嵌入式系統(tǒng)中寫(xiě)文件的時(shí)間相對(duì)比較長(zhǎng),用戶(hù)不得不忍受較長(zhǎng)的事務(wù)操作。那么目前對(duì)于實(shí)時(shí)性要求比較高的應(yīng)用,用戶(hù)為了提高事務(wù)處理的速度只有盡量減少寫(xiě)文件的內(nèi)容以及寫(xiě)文件的次數(shù)、或者是使用讀寫(xiě)性能更高的物理介質(zhì),這樣處理的方式要么會(huì)因?yàn)檫x擇存盤(pán)的數(shù)據(jù)而增加應(yīng)用程序的復(fù)雜度,要么會(huì)因?yàn)檫x擇性能較高的物理介質(zhì)而增加用戶(hù)的成本。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種使內(nèi)存數(shù)據(jù)庫(kù)的實(shí)時(shí)提交能夠被完整處理的改進(jìn)的內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)管理方法。
鑒于上述目的,本發(fā)明提供了一種內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)管理方法,包括以下步驟步驟1,操作維護(hù)子系統(tǒng)(Operating And Maintenance Subsystem,以下簡(jiǎn)稱(chēng)OMS)后臺(tái)將數(shù)據(jù)提交到內(nèi)存數(shù)據(jù)庫(kù);步驟2,設(shè)置非易失存儲(chǔ)介質(zhì)中預(yù)設(shè)的存盤(pán)標(biāo)志為未完成,然后內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)存入上述非易失存儲(chǔ)介質(zhì);步驟3,當(dāng)內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)存入上述非易失存儲(chǔ)介質(zhì)的存儲(chǔ)過(guò)程完成后,將上述存盤(pán)標(biāo)志設(shè)置為已完成。
其中,如果上述存儲(chǔ)過(guò)程沒(méi)有完成,而是在進(jìn)行過(guò)程中出現(xiàn)異常,例如意外中斷等,則停止存儲(chǔ)過(guò)程,不對(duì)上述存盤(pán)標(biāo)志改動(dòng),其仍為未完成,以便系統(tǒng)啟動(dòng)后重新提交數(shù)據(jù)。
所述方法還包括步驟4,當(dāng)系統(tǒng)啟動(dòng)時(shí),讀取非易失存儲(chǔ)介質(zhì)的上述存盤(pán)標(biāo)志,并判斷該存盤(pán)標(biāo)志是否為未完成,如果是則進(jìn)入步驟5,否則步驟結(jié)束;步驟5,更新內(nèi)存數(shù)據(jù)庫(kù),在更新過(guò)程中拒絕所有OMS后臺(tái)(即OMS的網(wǎng)管中心)對(duì)該內(nèi)存數(shù)據(jù)庫(kù)的操作;步驟6,更新完成后,將內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)重新存入非易失存儲(chǔ)介質(zhì),轉(zhuǎn)到步驟3。
其中,上述存盤(pán)標(biāo)志可以是已完成或未完成,如果在該系統(tǒng)初始啟動(dòng)時(shí),也可以先將存盤(pán)標(biāo)志設(shè)置為初始化。
所述步驟5中,根據(jù)非易失存儲(chǔ)介質(zhì)中的數(shù)據(jù)更新內(nèi)存數(shù)據(jù)庫(kù),該更新不與OMS后臺(tái)交互。
所述步驟1具體為,OMS后臺(tái)發(fā)起事務(wù)操作,數(shù)據(jù)以文件或消息的方式傳送到OMS前臺(tái),而后提交到內(nèi)存數(shù)據(jù)庫(kù)。
所述步驟1中,如果數(shù)據(jù)以消息的方式傳送,則將其維護(hù)信息存放在保留內(nèi)存中或非易失存儲(chǔ)介質(zhì)的配置文件中作備份,該數(shù)據(jù)的存儲(chǔ)過(guò)程完成后,清除上述維護(hù)信息。
綜上所述,本發(fā)明的有益效果在于,本發(fā)明可以同時(shí)保證事務(wù)處理的完整性和實(shí)時(shí)性,易于處理實(shí)時(shí)性要求較高的應(yīng)用,保證數(shù)據(jù)能夠完整實(shí)時(shí)地更新,不會(huì)因系統(tǒng)的故障、復(fù)位等異常而破壞上述操作,從而增加內(nèi)存數(shù)據(jù)庫(kù)的容災(zāi)性。
圖1是本發(fā)明一較佳實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)管理方法流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地介紹,但不作為對(duì)本發(fā)明的限定。
本發(fā)明的原理為在非易失存儲(chǔ)介質(zhì)中設(shè)置存盤(pán)標(biāo)志,OMS后臺(tái)將數(shù)據(jù)提交到內(nèi)存數(shù)據(jù)庫(kù)之后,直接回應(yīng)事務(wù)提交完成,然后將上述數(shù)據(jù)從內(nèi)存數(shù)據(jù)庫(kù)存入非易失存儲(chǔ)介質(zhì),用上述存盤(pán)標(biāo)志來(lái)記錄存盤(pán)是否成功,如果系統(tǒng)出現(xiàn)故障,通過(guò)該存盤(pán)標(biāo)志即可重新自動(dòng)存盤(pán)。這樣可以保證整個(gè)過(guò)程既在可接受的時(shí)間內(nèi)完成,又不會(huì)受系統(tǒng)故障的破壞。
本發(fā)明的事務(wù)管理方法中的存盤(pán)標(biāo)志設(shè)置操作可以包括以下步驟步驟11,系統(tǒng)初始啟動(dòng)時(shí),在非易失存儲(chǔ)介質(zhì)上設(shè)置存盤(pán)標(biāo)志Val為初始化;步驟12,OMS后臺(tái)更新內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù),數(shù)據(jù)可以以文件或消息的方式傳送到OMS前臺(tái),存入內(nèi)存數(shù)據(jù)庫(kù),其中,可以根據(jù)文件傳輸協(xié)議(File Transfer Protocol,以下簡(jiǎn)稱(chēng)FTP)傳送數(shù)據(jù);步驟13,內(nèi)存數(shù)據(jù)庫(kù)更新完成后,將存盤(pán)標(biāo)志Val設(shè)置為未完成,同時(shí)開(kāi)始將內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存入非易失存儲(chǔ)介質(zhì);步驟14,如果上述存儲(chǔ)過(guò)程正常完成,則將存盤(pán)標(biāo)志Val設(shè)置為已完成;如果在上述存儲(chǔ)過(guò)程中出現(xiàn)異常情況,例如故障、意外中斷或復(fù)位,則不改動(dòng)上述存盤(pán)標(biāo)志Val,其仍為未完成。
本發(fā)明的內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)管理方法可以通過(guò)系統(tǒng)啟動(dòng)操作的步驟詳細(xì)說(shuō)明,如圖1所示,其包括以下步驟步驟21,系統(tǒng)上電啟動(dòng),根據(jù)存盤(pán)標(biāo)志Val判斷上一次存盤(pán)的狀態(tài);步驟22,如果上述存盤(pán)標(biāo)志Val為初始化或已完成,則表示上次存盤(pán)正常,轉(zhuǎn)入步驟23;如果上述存盤(pán)標(biāo)志Val為未完成,則說(shuō)明上次存盤(pán)過(guò)程未完成,轉(zhuǎn)到步驟25;步驟23,OMS后臺(tái)發(fā)起事務(wù)操作,更新內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù);步驟24,更新完成后將存盤(pán)標(biāo)志Val設(shè)置為未完成,將上述數(shù)據(jù)存儲(chǔ)到非易失存儲(chǔ)介質(zhì),轉(zhuǎn)到步驟27;步驟25,重新更新內(nèi)存數(shù)據(jù)庫(kù),該更新不用和OMS后臺(tái)交互,根據(jù)非易失存儲(chǔ)介質(zhì)中的數(shù)據(jù)更新內(nèi)存數(shù)據(jù)庫(kù);步驟26,更新完成后將內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)存儲(chǔ)到非易失存儲(chǔ)介質(zhì);步驟27,如果存儲(chǔ)過(guò)程正常完成,則設(shè)置上述存盤(pán)標(biāo)志Val為已完成;如果在存儲(chǔ)過(guò)程中系統(tǒng)出現(xiàn)異常,例如故障、復(fù)位等,則停止存儲(chǔ)過(guò)程并保持存盤(pán)標(biāo)志Val為未完成,流程結(jié)束。
在所述步驟12中,如果數(shù)據(jù)是以消息的方式傳送,則將此操作的維護(hù)信息保存在保留內(nèi)存或非易失存儲(chǔ)介質(zhì)的配置文件中做備份,待該更新操作完成后清除保存的維護(hù)信息;采用保留內(nèi)存是由于在系統(tǒng)非掉電啟動(dòng)時(shí),存放在保留內(nèi)存中的數(shù)據(jù)不會(huì)被破壞;采用非易失存儲(chǔ)介質(zhì)的配置文件備份文件是由于有些操作系統(tǒng)不提供保留內(nèi)存或者由于某些原因而破壞保存在保留內(nèi)存中的數(shù)據(jù),例如某些操作系統(tǒng)會(huì)掉電啟動(dòng),這種情況下保存在保留內(nèi)存中的數(shù)據(jù)將被破壞,因此可以將上述維護(hù)信息保存在相對(duì)穩(wěn)定的非易失存儲(chǔ)介質(zhì)的配置文件中。因?yàn)榕渲梦募^小,所以讀寫(xiě)速度較快,一定程度上可以代替保留內(nèi)存的方式。
以上所述僅為本發(fā)明的較佳實(shí)施例,并非用來(lái)限定本發(fā)明的實(shí)施范圍;如果不脫離本發(fā)明的精神和范圍,對(duì)本發(fā)明進(jìn)行修改或者等同替換的,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求的保護(hù)范圍當(dāng)中。
權(quán)利要求
1.一種內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)管理方法,其特征在于包括以下步驟步驟1,操作維護(hù)子系統(tǒng)后臺(tái)將數(shù)據(jù)提交到內(nèi)存數(shù)據(jù)庫(kù);步驟2,設(shè)置非易失存儲(chǔ)介質(zhì)中預(yù)設(shè)的存盤(pán)標(biāo)志為未完成,將內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)存入上述非易失存儲(chǔ)介質(zhì);步驟3,當(dāng)內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)存入上述非易失存儲(chǔ)介質(zhì)的存儲(chǔ)過(guò)程完成后,將上述存盤(pán)標(biāo)志設(shè)置為已完成。
2.根據(jù)權(quán)利要求1所述的事務(wù)管理方法,其特征在于所述方法還包括步驟4,系統(tǒng)啟動(dòng)時(shí),讀取非易失存儲(chǔ)介質(zhì)的上述存盤(pán)標(biāo)志,并判斷該存盤(pán)標(biāo)志是否為未完成,如果是則進(jìn)入步驟5,否則步驟結(jié)束;步驟5,更新內(nèi)存數(shù)據(jù)庫(kù),在更新過(guò)程中拒絕所有操作維護(hù)子系統(tǒng)后臺(tái)對(duì)該內(nèi)存數(shù)據(jù)庫(kù)的操作;步驟6,更新完成后,內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)重新存入非易失存儲(chǔ)介質(zhì),轉(zhuǎn)到步驟3。
3.根據(jù)權(quán)利要求2所述的事務(wù)管理方法,其特征在于所述步驟5中,根據(jù)非易失存儲(chǔ)介質(zhì)中的數(shù)據(jù)更新內(nèi)存數(shù)據(jù)庫(kù),該更新不與操作維護(hù)子系統(tǒng)后臺(tái)交互。
4.根據(jù)權(quán)利要求3所述的事務(wù)管理方法,其特征在于所述步驟1具體為,操作維護(hù)子系統(tǒng)后臺(tái)發(fā)起事務(wù)操作,數(shù)據(jù)以文件或消息的方式傳送到操作維護(hù)子系統(tǒng)前臺(tái),而后提交到內(nèi)存數(shù)據(jù)庫(kù)。
5.根據(jù)權(quán)利要求4所述的事務(wù)管理方法,其特征在于所述步驟1中,如果數(shù)據(jù)以消息的方式傳送,則將其維護(hù)信息存放在保留內(nèi)存中或非易失存儲(chǔ)介質(zhì)的配置文件中作備份,該數(shù)據(jù)的存儲(chǔ)過(guò)程完成后,清除上述存放的維護(hù)信息。
全文摘要
本發(fā)明提供了一種內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)管理方法步驟1,操作維護(hù)子系統(tǒng)后臺(tái)將數(shù)據(jù)提交到內(nèi)存數(shù)據(jù)庫(kù);步驟2,設(shè)置非易失存儲(chǔ)介質(zhì)中預(yù)設(shè)的存盤(pán)標(biāo)志為未完成,將內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)存入上述非易失存儲(chǔ)介質(zhì);步驟3,當(dāng)內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)存入上述非易失存儲(chǔ)介質(zhì)的存儲(chǔ)過(guò)程完成后,將上述存盤(pán)標(biāo)志設(shè)置為已完成。本發(fā)明可以同時(shí)保證事務(wù)處理的完整性和實(shí)時(shí)性,易于處理實(shí)時(shí)性要求較高的應(yīng)用,保證數(shù)據(jù)能夠完整實(shí)時(shí)地更新,不會(huì)因系統(tǒng)的故障、復(fù)位等異常而破壞上述操作,從而增加內(nèi)存數(shù)據(jù)庫(kù)的容災(zāi)性。
文檔編號(hào)G06F11/14GK101051324SQ200710103758
公開(kāi)日2007年10月10日 申請(qǐng)日期2007年5月23日 優(yōu)先權(quán)日2007年5月23日
發(fā)明者孫號(hào)令 申請(qǐng)人:中興通訊股份有限公司