保證嵌入式系統中數據一致性的方法
2023-06-26 10:26:11 1
專利名稱:保證嵌入式系統中數據一致性的方法
技術領域:
本發明涉及在嵌入式系統中保證數據一致性的數據保存方法。
背景技術:
目前嵌入式系統應用具有非常高的可配置性,能夠依據用戶的需要靈活地設置系統的運 行狀態。通常,這些對系統進行配置的數據存儲在非易失性的存儲晶片中,即要求數據在掉 電的情況下仍然能夠保存。
一般來說,嵌入式系統中配置數據都是以多個數據表的形式保存,即對於用戶的一個配 置操作,系統實現過程中會保存多個資料庫表。當系統接收到用戶配置操作後,會逐項對這 些數據表進行保存,在前一數據表保存完畢後才接著處理後一個數據表,直到所有數據表都 保存完畢。這些數據表中的數據之間經常不是孤立的,而是存在較強的關聯性,這些數據表 間可能存在的依賴或者索引等關係。如果在操作數據表的過程中出現系統掉電或者系統異常, 則可能導致保存的數據表之間的關聯數據不一致,可能導致業務異常或者有些系統配置無法 啟動,嚴重的可能導致系統崩潰,因此,保證這些資料庫表之間關聯數據的一致性成為必要, 但目前的嵌入式系統缺少這種保證機制。
發明內容
為克服上述缺陷,本發明的目的在於提供一種在系統掉電或者系統異常的情況下,能夠 保證嵌入式系統中數據一致性的方法。
為達到上述發明目的,本發明採用如下技術方案該保證嵌入式系統中數據一致性的方 法包括-
(1) 定義並初始化數據操作標誌表;
(2) 利用數據操作標誌表的狀態進行數據表的操作。
其中,所述的步驟(1)具體為:
〔11)定義數據操作標誌表中的關鍵標識和操作標誌;
(12)選取待保存的數據表集合;
(13)在操作標誌表中為每-項數據表設置一個唯一的關鍵標識,並將操作標誌設為無 效狀態。
其中,所述的步驟(2)具體為
(21) 保存待保存的數據表;
(22) 判斷對數據表的保存是否成功,若保存成功,執行步驟(23);若保存失敗,執行 步驟(24);
(23) 進入保存成功後的數據處理;
(24) 恢復處理後的數據。 其中,所述的步驟(21)具體為:
(211) 獲取一項待保存的數據表;
(212) 對該數據表對應的上次數據表進行備份,並保存該數據表的當前數據;
(213) 修改該數據表的操作標誌表中的操作標誌為有效。
其中,所述的步驟(23)具體為判斷待保存的數據表是否保存完畢,若沒有保存完畢, 返回執行步驟(211);若保存完畢,則流程結束。 其中,所述的步驟(24)具體為
(241 )獲取保存後的操作標誌表中操作標誌為有效的一項數據表;
(242) 將該操作標誌為有效的數據表對應的備份數據恢復為當前數據;
(243) 將該操作標誌為有效的數據表對應的操作標誌表中的操作標誌設為無效;
(244) 判斷保存後的數據表是否恢復完畢,若恢復完畢,則流稃結束;若沒有恢復完畢, 返回執行歩驟(241)。
若在步驟(21)中,系統尚未徹底完成數據的處理和保存,系統斷電或重啟,則進入系統復位流程,具體為
系統復位後,判斷數據表的操作標誌表中是否存在操作標誌為無效狀態的數據表,若不 存在操作標誌為無效狀態的數據表,則流程結束;若存在操作標誌為無效狀態的數據表,執 行如下步驟
(701) 獲取保存後的操作標誌表中操作標誌為有效的一項數據表;
(702) 將該操作標誌為有效的數據表對應的備份數據恢復為當前數據;
(703) 將該操作標誌為有效的數據表對應的操作標誌表中的操作標誌設為無效;
(704) 判斷保存後的數據表是否恢復完畢,若恢復完畢,則流程結束;若沒有恢復完畢,返回執行步驟(701)。
由上述技術方案所描述的保證嵌入式系統中數據一致性的方法,在系統進行配置的時候, 只要數據配置發生錯誤就能夠將所有的配置數據還原到上次配置的數據,若沒有發生錯誤, 則可以完整地將本次配置的數據保存下來,這樣保證了系統的配置數據的一致性,不會同時 存在兩種不同的配置數據而導致系統無法正常運行。
圖1為本發明保證嵌入式系統中數據一致性的方法中使用的數據操作標誌表; 圖2為本發明保證嵌入式系統中數據一致性的方法的多數據表的處理流程; 圖3為本發明保證嵌入式系統中數據一致性的方法在系統重啟動後的流程。
具體實施例方式
下面結合附圖對本發明保證嵌入式系統中數據一致性的方法進行詳細描述。
在嵌入式系統接收到用戶配置操作後,會逐項對這些數據表進行保存,在前一數據表保 存完畢後才接著處理後一個數據表,直到所有數據表都保存完畢。但有的時候可能會出現保 存了一部分數據後就死機或斷電,系統重啟動後所獲得的數據就是一部分是配置以前的數據, 一部分是配置以後的數據,無法保證數據表的一致性,這種錯誤導致的後果可大可小,可能 導致業務異常或者有些系統配置無法啟動,嚴重的可能導致系統崩潰。
本發明保證嵌入式系統中數據一致性的方法在對多個數據表的處理過程中,能夠保證操 作前後的數據滿足一致性需求,該方法對數據的處理要麼全部處理成功,要麼全部都不處理, 這樣雖然不能保證數據一定處理成功,但至少保證了數據的一致性,並且在任意數據表異常 或者系統掉電的情況下,能夠恢復到操作前的狀態,很好的保證多數據表之間的數據一致性。 這樣就能夠確保系統的正常運行,沒有保存下來的配置可以重啟動以後再進行設置。
本發明實現上述數據處理的技術方案包括以下歩驟
第一步定義數據操作標誌表,數據操作標誌表包括所有數據表的操作標誌,每張數據 表的操作標誌表含有兩個部分關鍵標識和操作標誌(如圖l所示),關鍵標識是識別不同的 數據表,操作標誌的用途是記錄數據表的處理狀態。
第二步初始化數據操作標誌表,在數據操作標誌表中必須為操作中涉及的每一項數據
表分配一個唯一的關鍵標識,保證每一數據表的關鍵標識在此數據操作標誌表中的唯一性,
並且將每個數據表在數據操作表中的操作標誌初始化為無效狀態。將上述初始化的結果保存到數據操作標誌表文件。
第三步當需要保存多個數據表的數據時,按照如下方式對每個數據表進行處理。
1) 首先將當前需要處理的數據表的上次數據進行備份,然後保存本次的數據。
2) 如果當前數據表保存成功,則依據當前數據表的關鍵標識在數據操作標誌表中査找其 對應的操作標誌,找到操作標誌後將該數據表的操作標誌狀態欄位修改為有效,並保存數據 操作標誌表。
3) 如果由於某種原因導致當前數據表的操作失敗,包括數據配置過程中出錯或數據配置 無效等,則在數據操作標誌表中查找操作標誌狀態欄位為有效的所有數據表,從備份數據中 將該部分數據表的恢復,直到全部數據都從備份數據中恢復,恢復成功的同時,修改數據操 作標誌表的對應操作標誌狀態欄位為無效,並保存數據操作標誌表。
第四步系統重新運行時,檢査數據表的操作標誌表中的每一項數據的操作標誌狀態字 段是否都為有效,如果存在數據表的操作標誌欄位有無效的情況,則需要將數據操作標誌狀 態欄位中的所有操作標誌狀態為有效的數據表恢復為備份數據。
本發明保證嵌入式系統中數據一致性的方法較好地解決了資源相對緊張的嵌入式應用在 系統掉電或者系統異常的情況下,若數據表全部處理成功則不用恢復到處理前的數據,而在 數據表沒有全部處理成功地情況下,將已經處理並成功保存的數據恢復到數據操作前的狀態, 保證了多數據表之間數據的一致性。在系統重新啟動以後還能夠快速地恢復系統到能夠運行 的配置狀態,防止系統無法啟動。
本發明在現行的光通訊系統中會有較好的應用,傳輸設備時隙配置成功後保存時隙數據 時可以採用本發明所述的方法。需要保存的時隙數據涉及多個文件,多個文件的保存要麼全 部成功,要麼都不成功,才能保證時隙數據的一致,如圖2所示,實現的具體歩驟如下
201、 準備需要配置的時隙數據表的集合,以A表示,定義包含數據關鍵標識欄位和數據 操作標誌欄位的數據操作標誌表,依照時隙數據表的個數申請數據操作標誌表的數組;
202、 將歩驟201中申請的數據操作標誌表的數組初始化,每一項時隙數據分配一個唯一 的關鍵標識填入數據中的關鍵標識欄位,並將該項數據的操作標誌欄位初始化為無效欄位, 將初始化完成的數據操作標誌表保存到文件中。該無效欄位可以使用二進位的0/1表示,若 用0表示無效,則用1表示有效;若用0表示有效,則用1表示無效。
203、 判斷集合A中是否還有數據表需要處理,若集合A中還有數據表需要處理,執行歩 驟204;若集合A中沒有數據表需要處理,執行步驟212;
204、 取得當前需要保存的時隙數據表;
205、 將該時隙數據表對應的上次時隙數據拷貝到備份文件中;
206、 將當前需要處理的時隙數據表處理完成後寫入對應的時隙文件中;
207、 判斷時隙數據表是否保存成功,如果數據表保存成功,執行步驟208;若數據表沒 有保存成功,執行步驟209;
208、 修改數據操作標誌表中對應時隙數據的操作標誌為有效,並將數據操作標誌表保存 到文件,返回執行步驟203;
209、 取得當前數據操作標誌表中操作標誌為有效數據表集合,以B表示;
210、 判斷集合B中是否還有數據表需要處理,若集合B中還有數據表需要處理,執行歩 驟211;若集合B中沒有數據表需要處理,執行步驟212;
211、 取下一項需要處理的數據表,從備份文件將該項數據表的恢復,將數據操作標誌表對應數據的操作標誌修改為無效,並將該數據操作標誌表保存,返回執行歩驟210;
212、 本次系統配置的流程結束。
上述歩驟為,本方法能夠正常運行完全的步驟,若是系統尚未徹底完成數據的處理和保 存,系統就斷電或重啟,也就是時隙配置過程中,系統斷電或重啟,則需要將系統進行復位 操作。該復位操作的流程如圖3所示,具體歩驟如下-
301、 系統重新啟動,裝載系統配置;
302、 在操作標誌表中査找操作標誌狀態欄位為無效的數據表,並將與該數據表有關聯的 數據表列成一個集合,以C表示;
303、 判斷集合C中是否有數據,若集合C中有數據,執行歩驟304;若集合C中沒有數 據,執行歩驟307;
304、 在操作標誌表中査找操作標誌為有效的數據表集合,以D表示;
305、 判斷集合D中是否還有數據需要處理,若集合D中還有數據需要處理,執行歩驟 306;若集合D中沒有數據需要處理,執行步驟307;
306、 取下一項需要處理的數據表,從備份文件將該項數據表的恢復,將數據操作標誌表 對應數據的操作標誌修改為無效,並將該數據操作標誌表保存,返回執行歩驟305;
307、 流程結束,系統進入正常運行狀態。當然,上述操作也可以變為另一種方式系統復位後,根據數據表的操作標誌表判斷是 否存在操作標誌為無效狀態的數據表若不存在,則流程結束;若存在,執行如下步驟
(701) 獲取保存後的操作標誌表中操作標誌為有效的一項數據表;
(702) 將該操作標誌為有效的數據表對應的備份數據恢復為當前數據;
(703) 將該操作標誌為有效的數據表對應的操作標誌表中的操作標誌設為無效;
(704) 判斷保存後的數據表是否恢復完畢,若恢復完畢,則流程結束;若沒有恢復完畢,
返回執行歩驟(701)。
系統復位後的流程無論採用哪種實施方式,都可以達到在系統無法正常保存好數據時, 將部分修改後的數據表中的數據恢復到修改前的狀態,保證所用數據的一致性,使得系統不 會由於系統配置數據的不一致而無法正常運行。
以上所述僅是本發明的優選實施方式,應當指出,該具體實施方式
能夠對時隙配置過程 中發生的一系列系統錯誤進行糾正,甚至對系統以為斷電而引起的配置故障也能還原,保證 系統的時隙配置數據表的一致性。對於本技術領域的普通技術人員來說,在不脫離本發明原 理的前提下,還可以做出若干改進,這些改進應視為本發明的保護範圍。
權利要求
1、一種保證嵌入式系統中數據一致性的方法,其特徵在於包括(1)定義並初始化數據操作標誌表;(2)利用數據操作標誌表的狀態進行數據表的操作。
2、 按照權利要求l所述的保證嵌入式系統中數據一致性的方法,其特徵在於所述的歩 驟(1)具體為-(11 )定義數據操作標誌表中的關鍵標識和操作標誌;(12) 選取待保存的數據表集合;(13) 在操作標誌表中為每一項數據表設置一個唯一的關鍵標識,並將操作標誌設為無 效狀態。
3、 按照權利要求2所述的保證嵌入式系統中數據一致性的方法,其特徵在於所述的步 驟(2)具體為-(21) 保存待保存的數據表;(22) 判斷對數據表的保存是否成功,若保存成功,執行步驟(23);若保存失敗,執行歩驟(24);(23) 進入保存成功後的數據處理;(24) 恢復處理後的數據。
4、 按照權利要求3所述的保證嵌入式系統中數據一致性的方法,其特徵在於所述的歩 驟(21)具體為(211) 獲取一項待保存的數據表;(212) 對該數據表對應的上次數據表進行備份,並保存該數據表的當前數據;(213) 修改該數據表的操作標誌表中的操作標誌為有效。
5、 按照權利要求4所述的保證嵌入式系統中數據一致性的方法,其特徵在於所述的歩 驟(23)具體為判斷待保存的數據表是否保存完畢,若沒有保存完畢,返回執行歩驟(211);若保存完畢,則流程結束。
6、 按照權利要求5所述的保證嵌入式系統中數據一致性的方法,其特徵在於所述的歩 驟(24)具體為(241) 獲取保存後的操作標誌表中操作標誌為有效的一項數據表;(242) 將該操作標誌為有效的數據表對應的備份數據恢復為當前數據;(243) 將該操作標誌為有效的數據表對應的操作標誌表中的操作標誌設為無效;(244) 判斷保存後的數據表是否恢復完畢,若恢復完畢,則流程結束;若沒有恢復完畢, 返回執行歩驟(241)。
7、按照權利要求3所述的保證嵌入式系統中數據一致性的方法,其特徵在於若系統尚 未徹底完成數據的處理和保存,系統斷電或重啟,則進入系統復位流程,具體為系統復位後,判斷數據表的操作標誌表中是否存在操作標誌為無效狀態的數據表,若不 存在操作標誌為無效狀態的數據表,則流程結束;若存在操作標誌為無效狀態的數據表,執 行如下步驟(701) 獲取保存後的操作標誌表中操作標誌為有效的一項數據表;(702) 將該操作標誌為有效的數據表對應的備份數據恢復為當前數據;(703) 將該操作標誌為有效的數據表對應的操作標誌表中的操作標誌設為無效;(704) 判斷保存後的數據表是否恢復完畢,若恢復完畢,則流程結束;若沒有恢復完畢, 返回執行歩驟(701)。
全文摘要
本發明公開了一種保證嵌入式系統中數據一致性的方法,為解決現有嵌入式系統中沒有保證數據一致性的機制而發明。該保證嵌入式系統中數據一致性的方法定義一個操作標誌表,通過操作標誌表中的關鍵標識來識別各個數據表的不同,通過操作標誌表中的操作標誌的有效和無效狀態來判斷數據表是否完全處理完成,在沒有完全處理完成的情況下恢復數據表到操作以前的數據,若完全處理完成則使用新的配置設置。本發明保證嵌入式系統中數據一致性的方法主要用在系統資源緊缺的嵌入式系統,特別是通信領域的嵌入式系統。
文檔編號G06F11/14GK101201771SQ200610165809
公開日2008年6月18日 申請日期2006年12月12日 優先權日2006年12月12日
發明者劉建軍, 李小偉, 潘傳友 申請人:中興通訊股份有限公司