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