專利名稱:一種數據管理系統及方法
技術領域:
本發明涉及數據管理技術,特別涉及分布式數據管理系統和分布式數據管理系統的數據核查與數據同步方法。
背景技術:
當前的通信設備常采用的分布式數據管理系統,包括多個用于執行應用任務的前管理系統(FAM)和一個面向用戶的后管理系統(BAM)。BAM對多個FAM的運行數據進行集中存儲和管理,各個FAM僅存儲和管理自身的運行數據以及運行數據的備份數據,FAM重新啟動時以備份數據作為自身初始運行數據。當BAM收到用戶發出的針對某一FAM比如FAM1的數據修改指令時,BAM根據數據修改指令實時修改自身存儲的FAM1運行數據,并通知FAM1實時修改其運行數據,以保證BAM中存儲的FAM1運行數據和FAM1自身存儲的運行數據恒為一致,以保證正常的用戶操作。但BAM中備份數據并非實時修改,故必然存在BAM中備份數據與運行數據不一致的時間段,在此期間如果FAM1重新啟動將以備份數據作為初始運行數據,則會由于FAM1的初始運行數據與BAM中FAM1運行數據不一致而導致用戶操作異常。為了保證BAM中備份數據與BAM中FAM1運行數據一致,需要對兩者進行同步。
圖1是現有技術的分布式數據管理系統的結構圖,圖1中以BAM和多個FAM中的某一FAM比如FAM1為例。現有技術的分布式數據管理系統包括FAM1 101和BAM 102。
其中,FAM1 101包括用于實現FAM1 101的各種應用功能的應用模塊110;用于對內存數據區115中的運行數據和備份數據區116中的備份數據進行管理的數據管理模塊113,包括數據修改單元177、數據核查單元178、數據同步單元179及一致性標志F 170;用于實現FAM1 101的遠程功能的通信模塊114,其能夠保證FAM1 101和BAM 102之間的正常通信;存儲FAM1 101的運行數據的內存數據區115及存儲FAM1 101的備份數據的備份數據區116,內存數據區115和備份數據區116的數據記錄的組成和排列順序完全相同。BAM102包括用于提供人機界面的人機交互模塊120,其供用戶對數據進行修改和維護,用戶發出的數據修改指令通過人機交互模塊120到達數據管理模塊123;用于對數據區125中存儲的數據進行管理的數據管理模塊123,包括數據修改單元167、數據核查單元168及數據同步單元169;用于實現BAM 102的遠程功能的通信模塊124,其能夠保證BAM 102和FAM1 101之間的正常通信;存儲多個FAM的運行數據的數據區125,數據區125包括存儲FAM1運行數據的FAM1_B數據區152,FAM1_B數據區152與內存數據區115和備份數據區116的組成和排列順序完全相同。
數據管理模塊113和數據管理模塊123之間通過通信模塊114和通信模塊124進行交互操作,比如用于數據修改的數據修改單元177和數據修改單元167在數據修改過程中的交互;用于數據核查的數據核查單元178和數據核查單元168在數據核查過程中的交互;用于數據同步的數據同步單元179和數據同步單元169在數據同步過程中的交互。下文中提到的有關上述模塊之間的交互操作,都表示是通過通信模塊114和通信模塊124進行的。
具體來說,數據管理模塊113包括數據修改單元177、數據核查單元178、數據同步單元179及一致性標志F 170。其中,一致性標志F 170用于表征備份數據區116中的備份數據與FAM1_B數據區152中的運行數據是否相同,F取值為1或0,本發明中F=1表示數據相同,F=0表示數據不相同,數據同步單元179可以讀寫一致性標志F 170,數據核查單元178可以寫一致性標志F170;數據修改單元177用于數據修改操作,能夠接收來自數據修改單元167的包括修改的數據記錄的數據修改消息,并將修改的數據記錄寫入內存數據區115;數據核查單元178用于數據核查操作,能夠接收來自數據核查單元168的包括核查數據Check_B的數據核查指令,以及從備份數據區116讀取核查數據Check_F,并比較Check_B和Check_F是否相同,如果兩者相同,則數據核查單元178將一致性標志F 170置1,如果兩者不同,則數據核查單元178將一致性標志F 170置0;數據同步單元179用于數據同步操作,能夠讀取一致性標志F 170,并判斷F是否等于0,如果F不等于0,則說明備份數據區116與FAM1_B數據區152的數據相同,則數據同步單元179不執行數據同步操作,如果F等于0,則說明備份數據區116與FAM1_B數據區152的數據不相同,則數據同步單元179執行數據同步操作向數據同步單元169發送數據同步指令,接收來自數據同步單元169的同步數據Syn_B,數據同步單元179將同步數據Syn_B寫入備份數據區116,并將一致性標志F 170置1。
內存數據區115存儲FAM1 101的運行數據,包括多個按照一定順序排列的數據記錄,當用戶發出數據修改指令時,內部存儲區115中存儲的相應運行數據會實時修改,掉電后內部存儲區115存儲的運行數據丟失;備份數據區116存儲FAM1 101的備份數據,包括多個按照一定順序排列的數據記錄,當用戶發出數據修改指令時,備份數據區116中存儲的相應備份數據不會實時修改,掉電后備份數據區116中存儲的備份數據不丟失,FAM1 101重啟時,內存數據區115從備份數據區116中復制備份數據作為初始運行數據。
具體來說,數據管理模塊123包括數據修改單元167、數據核查單元168及數據同步單元169。其中,數據修改單元167用于數據修改操作,能夠通過人機交互模塊120接收來自用戶的數據修改指令并將修改的數據記錄寫入FAM1_B數據區152;數據核查單元168用于數據核查操作,能夠從FAM1_B數據區152讀取核查數據Check_B,并發送包括核查數據Check_B的數據核查消息至數據核查單元178;數據同步單元169用于數據同步操作,能夠接收來自數據同步單元179的數據同步請求,從FAM1_B數據區152讀取同步數據Syn_B,并將同步數據Syn_B發送至數據同步單元179。
圖2是現有技術的數據修改流程圖,現有技術的數據修改流程包括以下步驟步驟201~203數據修改單元167通過人機交互模塊120收到來自用戶的數據修改指令;數據修改單元167將修改的數據記錄寫入FAM1_B數據區152,向數據修改單元177發送包括修改的數據記錄的數據修改消息;數據修改單元177將修改的數據記錄寫入內存數據區115,結束本流程。
圖3是現有技術的數據核查流程圖,現有技術的數據核查流程包括以下步驟步驟301~307數據核查單元168向FAM1_B數據區152發送取核查數據指令;數據核查單元168從FAM1_B數據區152讀取核查數據Check_B,Check_B包括FAM1_B數據區152所有的數據記錄;數據核查單元168向數據核查單元178發送包括核查數據Check_B的數據核查消息;數據核查單元178向備份數據區116發送取核查數據指令;數據核查單元178從備份數據區116讀取核查數據Check_F,Check_F包括備份數據區116所有的數據記錄;數據核查單元178逐一比較Check_B和Check_F中所有的數據記錄,根據比較結果,設置一致性標志F 170,如果Check_B和Check_F不相同,則數據核查單元178將一致性標志F 170置0,結束本流程,如果Check_B和Check_F相同,則數據核查單元178將一致性標志F 170置1,結束本流程,圖3中以Check_B和Check_F不相同的情況為例。
圖4是現有技術的數據同步流程圖,現有技術的數據同步流程包括以下步驟步驟401數據同步單元179讀取一致性標志F 170并判斷F是否等于0,如果F=0,則執行步驟402及其后續步驟,否則,結束本流程,圖4中以F=0的情況為例;步驟402~407數據同步單元179向數據同步單元169發送數據同步請求;數據同步單元169向FAM1_B數據區152發送取同步數據指令;數據同步單元169從FAM1_B數據區152讀取同步數據Syn_B,Syn_B包括FAM1_B數據區所有的數據記錄;數據同步單元169向數據同步單元179發送同步數據Syn_B;數據同步單元179向備份數據區116寫入同步數據Syn_B,同步數據Syn_B覆蓋了備份數據區116所有的原有數據記錄;數據同步單元179將一致性標志F170置1,結束本流程。
常見的,在采用現有技術的數據管理系統中,數據修改時機由外部用戶發出數據修改指令的時機確定,數據核查時機是周期性的,數據同步時機可以是周期性的,例如每天凌晨業務量最低的時間;或者,周期性與空閑檢測結合的,例如設定一個1小時的同步周期,若周期到時FAM1負載低于某個門限則進行同步,否則等待下個周期再進行,以保證數據同步不會影響到系統正常業務;或者,人工下發的,用戶隨時都可以下發數據同步指令進行同步,以適應例如系統升級等特殊應用場景。
實際應用中,采用現有技術的數據管理系統,其數據修改、數據核查和數據同步的時機選擇是完全獨立的。當數據管理系統完成數據同步操作之后,BAM中FAM1運行數據與BAM中備份數據達到一致,設置FAM1中的一致性標志F=1,此后進行的首次數據修改操作將使得BAM中FAM1運行數據與BAM中備份數據不一致,而現有技術的周期性數據核查時機不能保證在首次數據修改操作結束后立即執行數據核查操作,也就是說不能保證在首次數據修改后馬上將FAM1中的F置0,則在從首次數據修改操作結束到之后的首次數據核查操作結束的時間段T內,既便數據同步時機到達,仍可能會由于F=1而導致數據同步操作不能進行,結果使BAM中FAM1運行數據與BAM中備份數據失去同步機會而保持不一致的狀態。在時間段T內,如果FAM1重新啟動,FAM1將以與BAM中FAM1運行數據不一致的備份數據作為初始運行數據,從而導致用戶操作異常。
發明內容
有鑒于此,本發明的目的在于提供一種數據管理系統,能夠在首次數據修改操作之后,立即修改一致性標志,從而及時標識BAM中FAM運行數據與FAM中備份數據是否一致。
本發明的目的還在于提供一種數據管理方法,能夠在首次數據修改操作之后,立即修改一致性標志,從而及時標識BAM中FAM運行數據與FAM中備份數據是否一致。
根據上述目的的一個方面,本發明提供了兩種數據管理系統。
本發明的一種數據管理系統,包括面向用戶的后管理系統BAM和至少一個執行應用任務的前管理系統FAM,每個FAM包括執行各種應用功能的應用模塊、與BAM進行通信的通信模塊、存儲運行數據和備份數據的內存數據區和備份數據區以及對存儲數據進行管理的數據管理模塊,其中,數據管理模塊進一步包括用于修改數據的數據修改單元、用于核查數據的數據核查單元、用于同步數據的數據同步單元和用于確定運行數據與備份數據是否一致的一致性標志(170);BAM包括接收并執行用戶指令的人機交互模塊、與FAM進行通信的通信模塊、存儲FAM運行數據的FAM數據區以及對數據區中存儲數據進行管理的數據管理模塊;所述BAM側的數據管理模塊包括一致性標志(501),用于確定BAM側數據與FAM側運行數據是否一致;數據修改單元,用于接收用戶指令修改數據并將修改后的數據寫入FAM數據區,通知FAM側的數據修改單元修改其運行數據,設置BAM側的一致性標志(501)為數據不一致,并向本側的數據核查單元發送核查指令;數據核查單元,接收本側數據修改單元的核查指令,從FAM數據區讀取核查數據并向FAM側數據核查單元發送包括核查數據的核查消息;數據同步單元,用于接收FAM側數據同步單元的數據同步請求,從FAM數據區讀取同步數據發送給FAM側數據同步單元,設置本側的一致性標志(501)為數據一致。
本發明的另一種數據管理系統,包括面向用戶的后管理系統BAM和至少一個執行應用任務的前管理系統FAM,每個FAM包括執行各種應用功能的應用模塊、與BAM進行通信的通信模塊、存儲運行數據和備份數據的內存數據區和備份數據區以及對存儲數據進行管理的數據管理模塊;BAM包括接收并執行用戶指令的人機交互模塊、與FAM進行通信的通信模塊、存儲FAM運行數據的FAM數據區以及對數據區中存儲數據進行管理的數據管理模塊;所述BAM側的數據管理模塊包括
一致性標志(501),用于確定BAM側數據與FAM側運行數據是否一致;數據修改單元,用于接收用戶指令修改數據并將修改后的數據寫入FAM數據區,通知FAM側的數據修改單元修改數據,設置本側的一致性標志(501)為數據不一致,并向FAM側數據修改單元發送設置FAM側一致性標志(170)為數據不一致的指令;數據同步單元,用于接收FAM側數據同步單元的數據同步請求,從FAM數據區讀取同步數據發送給FAM側數據同步單元,設置本側的一致性標志(501)為數據一致;所述FAM側的數據管理模塊包括一致性標志(170),用于確定本側的運行數據與備份數據是否一致;數據修改單元,根據接收的BAM側修改數據通知修改數據,并將修改后的數據寫入內存數據區,并根據BAM側的設置指令設置本側一致性標志(170)為數據不一致;數據同步單元,用于根據本側的一致性標志(170)請求BAM側數據同步單元進行數據同步,并將BAM側數據同步單元發來的同步數據寫入備份數據區,設置本側的一致性標志(170)為數據一致。
根據上述目的的另一個方面,本發明提供了一種數據管理方法,適用于包括面向用戶的后管理系統BAM和至少一個執行應用任務的前管理系統FAM的系統中,在FAM中設置表示自身的運行數據與備份數據是否一致的一致性標志F,在BAM中設置表示BAM中數據與FAM中運行數據是否一致的一致性標志B,該方法還包括數據修改和核查以及數據同步兩個并行流程,其中,數據修改和核查流程包括a1.BAM收到數據修改指令后,修改自身的FAM數據,并通知FAM修改相應數據,FAM根據通知修改自身的運行數據;b1.BAM設置自身的一致性標志B為數據不一致,并通知FAM設置FAM中的一致性標志F為數據不一致;數據同步流程包括
a2.FAM根據自身的一致性標志F向BAM發起數據同步請求;b2.BAM從自身的數據存儲區中讀取同步數據發送給FAM,并設置自身的一致性標志B為數據一致;c2.FAM接收BAM發來的數據,并用接收到的數據更新自身的備份數據,之后設置自身的一致性標志F為數據一致。
其中,步驟b1中BAM設置一致性標志B之前進一步包括判斷當前的一致性標志B是否為數據不一致,如果不是,則設置一致性標志B為數據不一致;否則,不作處理。
其中,步驟b1中所述通知FAM設置FAM中的一致性標志F為數據不一致具體為BAM向FAM發送設置指令,FAM根據收到的指令設置自身的一致性標志F為數據不一致。
其中,步驟b1中所述通知FAM設置FAM中的一致性標志F為數據不一致具體包括b11.BAM從自身的數據存儲區中讀取要核查的數據,然后將讀取的核查數據發送給FAM;b12.FAM讀取自身與要核查數據對應的備份數據,比較確定讀取的備份數據與收到的核查數據不一致后,FAM設置自身的一致性標志F為數據不一致。
其中,步驟b11中BAM讀取要核查的數據后進一步包括計算要核查數據的校驗值,然后將校驗值作為要核查數據發送給FAM;則步驟b12中FAM讀取自身備份數據后進一步包括計算備份數據的校驗值,然后比較計算出的備份數據的校驗值和收到的要核查數據的校驗值。
其中,所述計算校驗值的方法為將所有數據按位異或。
其中,步驟b2中BAM從自身數據存儲區讀取同步數據后進一步包括將同步數據進行壓縮,然后將壓縮后的數據發送給FAM;則步驟c2中FAM接收到BAM發來的數據后進一步包括將接收到的數據進行解壓縮,然后用解壓縮后的數據更新自身的備份數據。
可見,本發明提供的數據管理系統和方法,通過在BAM中設置一致性標志B,當數據管理系統完成數據同步操作之后,BAM中FAM1運行數據與BAM中備份數據達到一致,設置一致性標志B=1,F=1,此后進行數據修改操作前先判斷當前B是否等于1,當B=1說明本次數據修改是首次數據修改操作,則BAM在完成首次數據修改操作后,立即通知FAM1將一致性標志F置0,此后數據同步時機到達時,會由于已設置F=0而立即執行數據同步操作,使BAM中FAM1運行數據與BAM中備份數據重新達到一致狀態,不存在現有技術中所述盡管BAM中FAM1運行數據與FAM1備份數據不一致,但數據同步時機到達時卻仍可能無法進行數據同步操作的時間段T,也就不會有因存在這一時間段而可能帶來的用戶操作異常。
另外,本發明提供的數據管理系統和方法可以采用校驗值作為核查數據,執行數據核查操作時BAM發送校驗值給FAM1,FAM1比較來自BAM的校驗值和自身的校驗值是否相同,常見的,該校驗值是32bit的,而通常現有技術中所比較的多項數據記錄中的一項數據記錄的長度即是超過32bit的,故大大減少了BAM和FAM1間傳輸的核查數據量,且比較的效率很高。
還有,本發明提供的數據管理系統和方法可采用壓縮后的同步數據進行數據同步,執行數據同步操作時BAM將壓縮后的同步數據發送給FAM1,FAM1對壓縮后的同步數據進行解壓縮得到原來的同步數據而后覆蓋備份數據區,大大減少了BAM和FAM1間傳輸的同步數據量。
圖1是現有技術的分布式數據管理系統的結構圖;圖2是現有技術的數據修改流程圖;圖3是現有技術的數據核查流程圖;圖4是現有技術的數據同步流程圖;圖5是本發明實施例一的分布式數據管理系統的結構圖;圖6是本發明實施例一的數據修改和核查流程圖;圖7是本發明實施例一的數據同步流程圖;
圖8是本發明實施例二的分布式數據管理系統的結構圖;圖9是本發明實施例二的數據修改流程圖;圖10是本發明實施例二的數據同步流程圖。
具體實施例方式
本發明的核心思想是執行首次數據修改操作后,立即修改一致性標志,使之能夠標識當前BAM中FAM1運行數據與BAM中備份數據不一致的狀況。
為使本發明的目的、技術方案和優點更加清楚明白,以下舉實施例,并參照附圖,對本發明進一步詳細說明。
實施例一本實施例中,BAM的數據修改單元執行首次數據修改操作后,立即通知BAM的數據核查單元進行數據核查,由FAM1中的數據核查單元根據核查結果實時修改一致性標志F,使一致性標志F能夠標識當前BAM中FAM1運行數據與BAM中備份數據不一致的狀況。
圖5是本發明實施例一的分布式數據管理系統的結構圖,圖5中以BAM和多個FAM中的某一FAM比如FAM1為例。本實施例的分布式數據管理系統包括FAM1 101和BAM 102。
其中,FAM1 101包括應用模塊110、數據管理模塊113、通信模塊114、內存數據區115及備份數據區116,數據管理模塊113包括數據修改單元177、數據核查單元178、數據同步單元179及一致性標志F 170。BAM 102包括人機交互模塊120、數據管理模塊123、通信模塊124、包括存儲FAM1運行數據的FAM1_B數據區152的數據區125,數據管理模塊123包括數據修改單元167、數據核查單元168、數據同步單元169及一致性標志B 501。
具體來說,一致性標志B 501用于表征備份數據區116中的備份數據與FAM1_B數據區152中的運行數據是否相同,B取值為1或0,本實施例中B=1表示數據相同,B=0表示數據不相同,數據修改單元167能夠讀寫一致性標志B 501,數據同步單元169能夠寫一致性標志B 501。數據修改單元167還能夠發送核查指令通知數據核查單元168執行數據核查操作。
圖6是本發明實施例一的數據修改和核查流程圖,本實施例的數據修改和核查流程包括以下步驟步驟601~603數據修改單元167通過人機交互模塊120收到來自用戶的數據修改指令;數據修改單元167將修改的數據記錄寫入FAM1_B數據區152,向數據修改單元177發送包括修改的數據記錄的數據修改消息;數據修改單元177將修改的數據記錄寫入內存數據區115;在數據修改單元177執行步驟603的同時,數據修改單元167并行執行步驟603′讀取一致性標志B 501,并判斷B是否等于1,如果B=1,則執行步驟604及其后續步驟,否則,結束本流程,圖6中以B=1的情況為例;步驟604~612數據修改單元167將一致性標志B 501置0;數據修改單元167向數據核查單元168發送核查指令;數據核查單元168收到核查指令后向FAM1_B數據區152發送取核查數據通知;數據核查單元168從FAM1_B數據區152讀取核查數據Check_B,Check_B包括FAM1_B數據區152所有的數據記錄;數據核查單元168向數據核查單元178發送包括核查數據Check_B的數據核查消息;數據核查單元178向備份數據區116發送取核查數據指令;數據核查單元178從備份數據區116讀取核查數據Check_F,Check_F包括備份數據區116所有的數據記錄;數據核查單元178逐一比較Check_B和Check_F中所有的數據記錄,根據比較結果,設置一致性標志F 170,如果Check_B和Check_F不相同,則數據核查單元178將一致性標志F 170置0,結束本流程,否則,數據核查單元178將一致性標志F 170置1,結束本流程,圖6中以Check_B和Check_F不相同的情況為例。
本實施例的步驟607和608之間可以增加步驟607′,數據核查單元168對Check_B的所有數據記錄按位進行異或操作計算得到一個校驗值Check_B_D,常見的,該校驗值是32bit的;相應的,步驟610和611之間應增加步驟610′,數據核查單元178對Check_F的所有數據記錄按位進行異或操作計算得到一個校驗值Check_F_D,常見的,該校驗值是32bit的;相應的,所述步驟608為數據核查單元168向數據核查單元178發送包括校驗值Check_B_D的數據核查消息;相應的,所述步驟611為數據核查單元178比較校驗值Check_B_D和校驗值Check_F_D是否相同,根據比較結果,設置一致性標志F 170,如果Check_B_D和Check_F_D不相同,則數據核查單元178將一致性標志F 170置0,結束本流程,否則,數據核查單元178將一致性標志F 170置1,結束本流程。
圖7是本發明實施例一的數據同步流程圖,本實施例的數據同步流程包括以下步驟步驟701數據同步單元179讀取一致性標志F 170并判斷F是否等于0,如果F=0,則執行步驟702及其后續步驟,否則,結束本流程,圖7中以F=0的情況為例;步驟702~708數據同步單元179向數據同步單元169發送數據同步請求;數據同步單元169向FAM1_B數據區152發送取同步數據指令;數據同步單元169從FAM1_B數據區152讀取同步數據Syn_B,Syn_B包括FAM1_B數據區所有的數據記錄;數據同步單元169將一致性標志B 501置1;數據同步單元169向數據同步單元179發送同步數據Syn_B;數據同步單元179向備份數據區116寫入同步數據Syn_B,同步數據Syn_B覆蓋了備份數據區116所有的原有數據記錄;數據同步單元179將一致性標志F 170置1。
本實施例的步驟705和706之間可以增加步驟705′,數據同步單元169對同步數據SynB進行壓縮得到壓縮后的同步數據Syn_B_K;相應的,所述步驟706為數據同步單元169向數據同步單元179發送壓縮后的同步數據Syn_B_K;相應的步驟706和707之間應增加步驟706′,數據同步單元179對壓縮后的同步數據Syn_B_K進行解壓縮,得到原始的同步數據Syn_B。
實施例二本實施例中,BAM的數據修改單元執行首次數據修改操作后,立即通知FAM1中的數據修改單元實時修改一致性標志F,使一致性標志F能夠標識當前BAM中FAM1運行數據與BAM中備份數據不一致的狀況。
圖8是本發明實施例二的分布式數據管理系統的結構圖,圖8中以BAM和多個FAM中的某一FAM比如FAM1為例。本實施例的分布式數據管理系統包括FAM1 101和BAM 102。
其中,FAM1 101包括應用模塊110、數據管理模塊113、通信模塊114、內存數據區115及備份數據區116,數據管理模塊113包括數據修改單元177、數據同步單元179及一致性標志F 170。BAM 102包括人機交互模塊120、數據管理模塊123、通信模塊124、數據區125,數據管理模塊123包括數據修改單元167、數據同步單元169及一致性標志B 501。
具體來說,數據同步單元179能夠讀寫一致性標志F 170,數據修改單元177能夠寫一致性標志F 170,數據修改單元167能夠讀寫一致性標志B 501,數據同步單元169能夠寫一致性標志B 501。本實施例與實施例一的區別還在于,數據修改單元167還能夠發送寫一致性標志F 170的通知給數據修改單元177,由其對一致性標志F 170進行設置。
圖9是本發明實施例二的數據修改流程圖,本實施例的數據修改流程包括以下步驟步驟901~903數據修改單元167通過人機交互模塊120收到來自用戶的數據修改指令;數據修改單元167將修改的數據記錄寫入FAM1_B數據區152,向數據修改單元177發送包括修改的數據記錄的數據修改消息;數據修改單元177將修改的數據記錄寫入內存數據區115;在數據修改單元177執行步驟903的同時,數據修改單元167并行執行步驟903′讀取一致性標志B 501,并判斷B是否等于1,如果B=1,則執行步驟904及其后續步驟,否則,結束本流程,圖9中以B=1的情況為例;步驟904~906數據修改單元167將一致性標志B 501置0;數據修改單元167向數據修改單元177發送將一致性標志F 170置0的指令;數據修改單元177將一致性標志F 170置0。
圖10是本發明實施例二的數據同步流程圖,本實施例的數據同步流程包括以下步驟步驟1001數據同步單元179讀取一致性標志F 170并判斷F是否等于0,如果F=0,則執行步驟1002及其后續步驟,否則,結束本流程,圖10中以F=0的情況為例;步驟1002~1008數據同步單元179向數據同步單元169發送數據同步請求;數據同步單元169向FAM1_B數據區152發送取同步數據指令;數據同步單元169從FAM1_B數據區152讀取同步數據Syn_B,Syn_B包括FAM1_B數據區152所有的數據記錄;數據同步單元169將一致性標志B 501置1;數據同步單元169向數據同步單元179發送同步數據Syn_B;數據同步單元179向備份數據區116寫入同步數據Syn_B,同步數據Syn_B覆蓋了備份數據區116所有的原有數據記錄;數據同步單元179將一致性標志F 170置1。
本實施例的步驟1005和1006之間可以增加步驟1005′,數據同步單元169對同步數據Syn_B進行壓縮得到壓縮后的同步數據Syn_B_K;相應的,所述步驟1006為數據同步單元169向數據同步單元179發送壓縮后的同步數據Syn_B_K;相應的,步驟1006和1007之間應增加步驟1006′,數據同步單元179對壓縮后的同步數據Syn_B_K進行解壓縮,得到原始的同步數據Syn_B。
以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。
權利要求
1.一種數據管理系統,包括面向用戶的后管理系統BAM和至少一個執行應用任務的前管理系統FAM,每個FAM包括執行各種應用功能的應用模塊、與BAM進行通信的通信模塊、存儲運行數據和備份數據的內存數據區和備份數據區以及對存儲數據進行管理的數據管理模塊,其中,數據管理模塊進一步包括用于修改數據的數據修改單元、用于核查數據的數據核查單元、用于同步數據的數據同步單元和用于確定運行數據與備份數據是否一致的一致性標志(170);BAM包括接收并執行用戶指令的人機交互模塊、與FAM進行通信的通信模塊、存儲FAM運行數據的FAM數據區以及對數據區中存儲數據進行管理的數據管理模塊;其特征在于,所述BAM側的數據管理模塊包括一致性標志(501),用于確定BAM側數據與FAM側運行數據是否一致;數據修改單元,用于接收用戶指令修改數據并將修改后的數據寫入FAM數據區,通知FAM側的數據修改單元修改其運行數據,設置BAM側的一致性標志(501)為數據不一致,并向本側的數據核查單元發送核查指令;數據核查單元,接收本側數據修改單元的核查指令,從FAM數據區讀取核查數據并向FAM側數據核查單元發送包括核查數據的核查消息;數據同步單元,用于接收FAM側數據同步單元的數據同步請求,從FAM數據區讀取同步數據發送給FAM側數據同步單元,設置本側的一致性標志(501)為數據一致。
2.一種數據管理系統,包括面向用戶的后管理系統BAM和至少一個執行應用任務的前管理系統FAM,每個FAM包括執行各種應用功能的應用模塊、與BAM進行通信的通信模塊、存儲運行數據和備份數據的內存數據區和備份數據區以及對存儲數據進行管理的數據管理模塊;BAM包括接收并執行用戶指令的人機交互模塊、與FAM進行通信的通信模塊、存儲FAM運行數據的FAM數據區以及對數據區中存儲數據進行管理的數據管理模塊;其特征在于,所述BAM側的數據管理模塊包括一致性標志(501),用于確定BAM側數據與FAM側運行數據是否一致;數據修改單元,用于接收用戶指令修改數據并將修改后的數據寫入FAM數據區,通知FAM側的數據修改單元修改數據,設置本側的一致性標志(501)為數據不一致,并向FAM側數據修改單元發送設置FAM側一致性標志(170)為數據不一致的指令;數據同步單元,用于接收FAM側數據同步單元的數據同步請求,從FAM數據區讀取同步數據發送給FAM側數據同步單元,設置本側的一致性標志(501)為數據一致;所述FAM側的數據管理模塊包括一致性標志(170),用于確定本側的運行數據與備份數據是否一致;數據修改單元,根據接收的BAM側修改數據通知修改數據,并將修改后的數據寫入內存數據區,并根據BAM側的設置指令設置本側一致性標志(170)為數據不一致;數據同步單元,用于根據本側的一致性標志(170)請求BAM側數據同步單元進行數據同步,并將BAM側數據同步單元發來的同步數據寫入備份數據區,設置本側的一致性標志(170)為數據一致。
3.一種數據管理方法,適用于包括面向用戶的后管理系統BAM和至少一個執行應用任務的前管理系統FAM的系統中,在FAM中設置表示自身的運行數據與備份數據是否一致的一致性標志F,其特征在于,在BAM中設置表示BAM中數據與FAM中運行數據是否一致的一致性標志B,該方法還包括數據修改和核查以及數據同步兩個并行流程,其中,數據修改和核查流程包括a1.BAM收到數據修改指令后,修改自身的FAM數據,并通知FAM修改相應數據,FAM根據通知修改自身的運行數據;b1.BAM設置自身的一致性標志B為數據不一致,并通知FAM設置FAM中的一致性標志F為數據不一致;數據同步流程包括a2.FAM根據自身的一致性標志F向BAM發起數據同步請求;b2.BAM從自身的數據存儲區中讀取同步數據發送給FAM,并設置自身的一致性標志B為數據一致;c2.FAM接收BAM發來的數據,并用接收到的數據更新自身的備份數據,之后設置自身的一致性標志F為數據一致。
4.根據權利要求3所述的方法,其特征在于,步驟b1中BAM設置一致性標志B之前進一步包括判斷當前的一致性標志B是否為數據不一致,如果不是,則設置一致性標志B為數據不一致;否則,不作處理。
5.根據權利要求3所述的方法,其特征在于,步驟b1中所述通知FAM設置FAM中的一致性標志F為數據不一致具體為BAM向FAM發送設置指令,FAM根據收到的指令設置自身的一致性標志F為數據不一致。
6.根據權利要求3所述的方法,其特征在于,步驟b1中所述通知FAM設置FAM中的一致性標志F為數據不一致具體包括b11.BAM從自身的數據存儲區中讀取要核查的數據,然后將讀取的核查數據發送給FAM;b12.FAM讀取自身與要核查數據對應的備份數據,比較確定讀取的備份數據與收到的核查數據不一致后,FAM設置自身的一致性標志F為數據不一致。
7.根據權利要求6所述的方法,其特征在于,步驟b11中BAM讀取要核查的數據后進一步包括計算要核查數據的校驗值,然后將校驗值作為要核查數據發送給FAM;則步驟b12中FAM讀取自身備份數據后進一步包括計算備份數據的校驗值,然后比較計算出的備份數據的校驗值和收到的要核查數據的校驗值。
8.根據權利要求7所述的方法,其特征在于,所述計算校驗值的方法為將所有數據按位異或。
9.根據權利要求3所述的方法,其特征在于,步驟b2中BAM從自身數據存儲區讀取同步數據后進一步包括將同步數據進行壓縮,然后將壓縮后的數據發送給FAM;則步驟c2中FAM接收到BAM發來的數據后進一步包括將接收到的數據進行解壓縮,然后用解壓縮后的數據更新自身的備份數據。
全文摘要
本發明公開了一種數據管理系統,通過在BAM中設置一致性標志,當數據管理系統完成數據同步操作之后,BAM中FAM運行數據與BAM中備份數據達到一致,設置一致性標志為一致,在此之后發生首次數據修改時,立即設置一致性標志為不一致。本發明還提供了一種數據管理方法。本發明提供的數據管理系統和方法能夠在首次數據修改操作之后,及時標識BAM中FAM運行數據與FAM中備份數據不一致的狀況。
文檔編號G06F11/14GK1851658SQ200510089130
公開日2006年10月25日 申請日期2005年8月2日 優先權日2005年8月2日
發明者吳亞晴 申請人:上海華為技術有限公司