一種支持追加寫和共享讀的文件存儲方式的制作方法
【專利摘要】本發(fā)明涉及一種支持追加寫和共享讀的文件存儲方式,屬于數(shù)據(jù)存儲和備份【技術領域】。一個完整的文件由狀態(tài)文件,信息文件和數(shù)據(jù)文件構成。在追加寫數(shù)據(jù)時,標記狀態(tài)文件,修改數(shù)據(jù)文件,在寫操作結束后,提交寫操作。在追加寫文件時,支持讀取已提交的文件內容。數(shù)據(jù)文件分塊存儲,并對每塊數(shù)據(jù)進行校驗。本發(fā)明簡化了備份過程中對存儲的操作,增加了備份安全性和可靠性,更可以有效縮短恢復窗口。
【專利說明】一種支持追加寫和共享讀的文件存儲方式
【技術領域】
[0001]本發(fā)明屬于數(shù)據(jù)存儲和備份【技術領域】,具體涉及支持追加寫和共享讀的文件存儲方式。
【背景技術】
[0002]隨著信息化水平的不斷提高,數(shù)據(jù)信息逐漸成為企業(yè)賴以生存的基礎,數(shù)據(jù)丟失所造成的損失也日益嚴重。傳統(tǒng)的數(shù)據(jù)復制、備份、恢復等數(shù)據(jù)保護技術雖然能夠對數(shù)據(jù)實現(xiàn)一定程度的保護,但是這些方法的恢復點目標和恢復時間目標太長,對于一些關鍵的信息系統(tǒng)來說是無法接受的。因此備份系統(tǒng)中,需要將數(shù)據(jù)恢復窗口的時間越短越好,以便可以盡快恢復關鍵系統(tǒng)的運行。
[0003]隨著需要保護的數(shù)據(jù)的不斷增加,進行一次數(shù)據(jù)備份所需要的時間也越來越長,同樣,如何縮短恢復窗口時間,甚至實現(xiàn)零恢復窗口,是數(shù)據(jù)備份系統(tǒng)中需要面對的問題。
[0004]現(xiàn)有技術中,需要先對文件進行備份,在數(shù)據(jù)丟失后,再通過恢復文件來恢復系統(tǒng)。這種方式需要等待恢復窗口結束,在一些較大的系統(tǒng)中,恢復窗口可能會花費非常長的時間。
[0005]為了縮短恢復窗口,可以采用邊備份邊恢復的模型。在此模型中如果使用常規(guī)的文件存儲方式,在出現(xiàn)系統(tǒng)斷電,程序崩潰,空間不足,網絡不通等異常后,需要重新發(fā)起整個備份與恢復流程。
【發(fā)明內容】
[0006]本發(fā)明的目的在于克服上述現(xiàn)有技術中的不足,提出了一種追加寫和共享讀的文件存儲方式,可以有效支持邊備份邊恢復的模型,簡化邏輯,提高備份與恢復的安全性與可靠性。
[0007]本發(fā)明所涉及的追加寫和共享讀的文件存儲方式,其主要技術步驟包括:
[0008](I)創(chuàng)建一個新文件,實際是創(chuàng)建一個與文件同名的目錄,目錄下存在3種類型的文件,狀態(tài)文件,數(shù)據(jù)文件和信息文件。
[0009]狀態(tài)文件記錄文件可讀取大小,文件屬性,文件名,數(shù)據(jù)文件分塊信息等內容。
[0010]數(shù)據(jù)文件存儲文件內容,以固定大小分塊存儲。
[0011]信息文件在追加寫文件時使用,記錄寫之前數(shù)據(jù)文件的校驗值,在回滾文件時進行校驗。
[0012](2)追加寫文件時,寫入文件數(shù)據(jù),提交數(shù)據(jù)??梢远啻螌懖僮骱笠黄鹛峤?。
[0013](3)讀文件時,只能讀取已提交部分的數(shù)據(jù)內容。
[0014]與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點:
[0015]1、寫操作異常后,在下次寫操作時,自動對文件進行回滾,保證文件內容的準確性。
[0016]2、讀文件時只能讀取已提交部分的文件內容,確保讀取的文件數(shù)據(jù)都是可用的。[0017]3、可以支持多用戶同時讀取文件。
[0018]4、文件數(shù)據(jù)分塊存儲。
[0019]5、文件數(shù)據(jù)加入校驗,提高數(shù)據(jù)可靠性。
【專利附圖】
【附圖說明】
[0020]圖1是文件存儲結構圖
[0021]圖2是一次追加文件操作流程圖
[0022]圖3是一次寫文件操作流程圖
[0023]圖4是回滾文件流程圖
[0024]圖5是提交寫數(shù)據(jù)流程圖
[0025]圖6是讀文件流程圖
[0026]具體實施方法
[0027]下面結合附圖對本發(fā)明的實施例作詳細說明:本實施例在以本發(fā)明技術方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。
[0028]1.創(chuàng)建文件時,創(chuàng)建如圖1類似的文件結構,構造初始狀態(tài)文件和信息文件。
[0029](I)狀態(tài)文件為一個uft-8編碼的xml文件,名稱為S,狀態(tài)文件格式如下:
[0030]
〈ROOT〉
〈!一文件狀態(tài),O為正常,I為寫開始,2為寫結束-->
<STATE>0</STATE>
<!--次寫操作累計的文件大小,在提交時,會將加入到DATASIZE中-->
<ADDSIZE>0</ADDSIZE>
〈!--文件被操作時,記錄文件原始信息,以供回滾-->
〈ORIGINAL〉
<!一當文件進行操作時,記錄一些原始文件數(shù)據(jù)一>
〈SRCDATA〉
<FILFE1ST〉
[0031]
【權利要求】
1.一種支持追加寫和共享讀的文件存儲方式,其特征在于,包括如下步驟: 步驟一:創(chuàng)建新文件,實際意義即創(chuàng)建一個與文件同名的目錄,目錄下存在3種類型的文件,狀態(tài)文件、數(shù)據(jù)文件和信息文件; 所述狀態(tài)文件記錄文件可讀取大小、文件屬性、文件名、數(shù)據(jù)文件分塊信息等內容; 所述數(shù)據(jù)文件存儲文件內容,以固定大小分塊存儲; 所述信息文件在追加寫文件時使用,記錄寫之前數(shù)據(jù)文件的校驗值,在回滾文件時進行校驗; 步驟二:追加寫文件,在所述步驟一創(chuàng)建的文件中追加寫入文件數(shù)據(jù)后,提交數(shù)據(jù); 所述追加寫文件時可以多次進行寫操作后一起提交數(shù)據(jù); 步驟三:讀文件,在追加寫文件的同時支持讀取已提交的數(shù)據(jù)內容。
2.權利要求1中所述方式的步驟二的追加寫文件,其特征主要包括如下步驟: (1)檢測當前文件狀態(tài),如果文件為非正常狀態(tài),則進入步驟(2),否則進入步驟(3); (2)回滾數(shù)據(jù)文件; (3)計算數(shù)據(jù)塊信息,并將當前數(shù)據(jù)文件校驗值記錄到信息文件; (4)標記狀態(tài)文件為寫開始狀態(tài); (5)寫入文件內容; (6)標記狀態(tài)文件為寫結束狀態(tài); (7)提交本次寫操作,更新狀態(tài)文件數(shù)據(jù)塊,文件大小等信息,并標記狀態(tài)文件為正常狀態(tài)。
3.權利要求2中所述的步驟(2)中的回滾數(shù)據(jù)文件,其特征主要包括如下步驟: (1)標記狀態(tài)文件為寫文件狀態(tài); (2)將數(shù)據(jù)文件截取到已提交位置; (3)重新寫入數(shù)據(jù)文件校驗值; (4)標記狀態(tài)文件為可操作狀態(tài)。
4.權利要求1所述方式的步驟三中的讀文件,其特征主要包括如下步驟: (1)當用戶讀文件時,先判斷文件讀寫是否超過文件可讀位置,如果超過則進入步驟(2),否則進行步驟(3); (2)自動修正讀取長度; (3)返回數(shù)據(jù)。
【文檔編號】G06F3/06GK103902227SQ201210580147
【公開日】2014年7月2日 申請日期:2012年12月28日 優(yōu)先權日:2012年12月28日
【發(fā)明者】謝亮 申請人:南京壹進制信息技術有限公司