一種固定大文件內部資源的控制方法
【專利摘要】本發明涉及計算機領域,公開了一種固定大文件內部資源的控制方法,通過將零散數據的索引信息、數據塊信息和數據存儲文件分離,同時使用內存文件映射技術,從而實現最大化利用有限硬盤空間、并能進行高效的文件索引和讀取。索引文件記錄了數據在數據存儲文件中的存放位置、大小、最后一次使用情況等信息,防止讀寫錯誤帶來的數據損壞,每一個數據末位置都使用一個用于校驗數據完整性的標識符;數據塊信息文件記錄緩存文件中尚未被使用的空間信息,當有新數據需要寫入數據存儲文件中時,會從這個文件中查詢是否還有可使用的連續空間。本發明中的數據存儲文件大小可自定義,文件大小將保持不變,使得程序對硬盤空間的控制能力增強。
【專利說明】
一種固定大文件內部資源的控制方法
技術領域
[0001]本發明涉及計算機技術領域,尤其涉及了一種固定大文件內部資源的控制方法。
【背景技術】
[0002]當網絡結構為SAN網絡環境時,多個主機通過磁盤共享軟件可以在同一時刻訪問同一磁盤陣列,從而實現對磁盤的儲存系統中保存的文件的共享以及工作流程的正常進行。在SAN網絡環境中每個主機上的存儲節點共享一個儲存系統,通過共享軟件的仲裁實現共享存儲系統中保存信息的無沖突訪問。每個存儲節點一般都需要獲取存儲系統中保存的文件包含的字節數量信息,當獲取的文件包含的字節數量與該文件實際包含的字節數量信息不一致時,則將直接導致文件備份的失敗,影響后續工作的進行。
[0003]由于磁盤共享軟件的參與,以及多個存儲節點共同訪問同一存儲系統,因此每個存儲節點在獲取存儲系統中保存的文件包含的字節數量信息不一定準確,從而影響存儲系統中保存的文件及備份。
【發明內容】
[0004]本發明針對現有技術中文件資源管理差、儲存信息不準確的缺點,提供了一種固定大文件內部資源的控制方法。
[0005]為了解決上述技術問題,本發明通過下述技術方案得以解決。
[0006]—種固定大文件內部資源的控制方法,包括如下步驟:
[0007](I)在程序啟動時,查詢指定路徑是否已生成了數據存儲文件;如果沒有生成數據存儲文件,則使用預先設定的文件大小值生成對應的數據存儲文件、索引文件和數據塊信息文件;如果已存在相應的數據存儲文件,那么加載其中的索引文件和數據塊信息文件,還原出數據存儲文件中的數據存儲信息,并且記錄數據存儲文件的可使用的空間信息;
[0008](2)在讀取索引信息后,生成一張用于查詢存儲信息的哈希表,哈希表在程序的運行周期中不會被更換,其中的索引信息可以被重復使用,用于能夠更快速地查詢數據信息;
[0009](3)在數據輸入和輸出過程中,索引文件中包含的索引信息包括有標識位、數據存儲起始地址、數據大小、數據最近訪問時間以及校驗位,用于配合記錄數據信息;索引文件的頭部則存儲了與索引文件本身相關的頭信息,用于校驗索引文件是否有效;
[0010](4)數據塊信息文件中包含了數據存儲文件中的空間使用記錄,還包括數據存儲文件中每份數據占用的空間大小、數據存儲的位置信息和數據塊的有效信息;
[0011](5)數據存儲文件中,順序、緊密排列存放了有效數據或未使用的存儲空間。
[0012]作為優選,步驟(3)中,標識位是一個數值,其中數值為O表示該條索引已被失效,等待下一條索引寫入,數值為I則表示該條索引有效;數據存儲起始地址表示該信息記錄了該條索引對應的數據在數據存儲文件中的存儲地址;數據大小用于表明該條索引對應的數據的大小;數據最近訪問時間是每當該條索引所對應的數據被訪問時所記錄的時間數據,數據最近訪問時間會被更新記錄在數據塊信息文件中;校驗位用于校驗該條索引對應的數據的完整性,校驗位的值根據數據校驗算法計算得出。
[0013]作為優選,步驟(I)中,自動讀取數據塊信息文件,將緩存文件的空間使用情況保存在內存中。
[0014]作為優選,步驟(4)和步驟(5)中,數據儲存文件的大小根據指定的文件大小值生成。
[0015]本發明由于采用了以上技術方案,具有顯著的技術效果:在這個系統中,從服務端下載數據到內存后,為其建立索引信息,分配大文件的數據塊使用空間,并寫入大文件中。考慮到網絡的數據傳輸速度遠及不上本地數據的加載速度,這個系統可以保證當客戶端需要加載相同的數據使用時,能通過大文件快速找到相關的數據,從而達到網絡數據的加速加載效果。同時,由于對大文件的容量進行了控制,并且使用了LRU算法對緩存數據進行管理,那些長久未被使用到的數據將被新的數據替換,從而使整個大文件中的數據沒有冗余的部分。
【附圖說明】
[0016]圖1是本發明一種固定大文件內部資源的控制方法及其設計方法的流程示意圖。
【具體實施方式】
[0017]下面結合附圖與實施例對本發明作進一步詳細描述。
[0018]如圖1所示,一種固定大文件內部資源的控制方法,包括如下步驟:
[0019](I)在程序啟動時,查詢指定路徑是否已生成了數據存儲文件;如果沒有生成數據存儲文件,則使用預先設定的文件大小值生成對應的數據存儲文件、索引文件和數據塊信息文件;如果已存在相應的數據存儲文件,那么加載其中的索引文件和數據塊信息文件,還原出數據存儲文件中的數據存儲信息,并且記錄數據存儲文件的可使用的空間信息;
[0020](2)在讀取索引信息后,生成一張用于查詢存儲信息的哈希表,哈希表在程序的運行周期中不會被更換,其中的索引信息可以被重復使用,用于能夠更快速地查詢數據信息;
[0021](3)在數據輸入和輸出過程中,索引文件中包含的索引信息包括有標識位、數據存儲起始地址、數據大小、數據最近訪問時間以及校驗位,用于配合記錄數據信息;索引文件的頭部則存儲了與索引文件本身相關的頭信息,用于校驗索引文件是否有效;
[0022](4)數據塊信息文件中包含了數據存儲文件中的空間使用記錄,還包括數據存儲文件中每份數據占用的空間大小、數據存儲的位置信息和數據塊的有效信息;
[0023](5)數據存儲文件中,順序、緊密排列存放了有效數據或未使用的存儲空間。
[0024]步驟(3)中,標識位是一個數值,其中數值為O表示該條索引已被失效,等待下一條索引寫入,數值為I則表示該條索引有效;數據存儲起始地址表示該信息記錄了該條索引對應的數據在數據存儲文件中的存儲地址;數據大小用于表明該條索引對應的數據的大小;數據最近訪問時間是每當該條索引所對應的數據被訪問時所記錄的時間數據,數據最近訪問時間會被更新記錄在數據塊信息文件中;校驗位用于校驗該條索引對應的數據的完整性,校驗位的值根據數據校驗算法計算得出。
[0025]步驟(I)中,自動讀取數據塊信息文件,將緩存文件的空間使用情況保存在內存中。
[0026]步驟(4)和步驟(5)中,數據儲存文件的大小根據指定的文件大小值生成。
[0027]當有新數據需要寫入時,其寫入流程為:先查找數據存儲文件中可寫入空閑塊位置,在該位置寫入數據,在數據塊信息文件中標識該塊已使用,再在索引文件中寫入該過索引信息并設置校驗位。如果索引寫入時系統異常推出等情況導致索引異常,在下一次讀取索引文件時可判斷該索引無效,并刪除數據存儲文件中的對應數據。如果數據塊管理索引出現異常,只是未標識數據塊存在數據,因為未寫入索引文件,對數據無影響。在數據寫入過程中異常,因為未更改空閑塊和索引管理,對整個存儲系統無影響。
[0028]實施例1
[0029]—份新數據需要寫入數據存儲文件時,其寫入流程為:先查找數據存儲文件中可寫入空閑塊位置,在該位置寫入數據,在數據塊信息文件中標識該塊已使用,再在索引文件中寫入該數據存儲信息并設置校驗位。
[0030]總之,以上所述僅為本發明的較佳實施例,凡依本發明申請專利范圍所作的均等變化與修飾,皆應屬本發明專利的涵蓋范圍。
【主權項】
1.一種固定大文件內部資源的控制方法,其特征包括如下步驟: (1)在程序啟動時,查詢指定路徑是否已生成了數據存儲文件;如果沒有生成數據存儲文件,則使用預先設定的文件大小值生成對應的數據存儲文件、索引文件和數據塊信息文件;如果已存在相應的數據存儲文件,那么加載其中的索引文件和數據塊信息文件,還原出數據存儲文件中的數據存儲信息,并且記錄數據存儲文件的可使用的空間信息; (2)在讀取索引信息后,生成一張用于查詢存儲信息的哈希表,哈希表在程序的運行周期中不會被更換,其中的索引信息可以被重復使用,用于能夠更快速地查詢數據信息; (3)在數據輸入和輸出過程中,索引文件中包含的索引信息包括有標識位、數據存儲起始地址、數據大小、數據最近訪問時間以及校驗位,用于配合記錄數據信息;索引文件的頭部則存儲了與索引文件本身相關的頭信息,用于校驗索引文件是否有效; (4)數據塊信息文件中包含了數據存儲文件中的空間使用記錄,還包括數據存儲文件中每份數據占用的空間大小、數據存儲的位置信息和數據塊的有效信息; (5)數據存儲文件中,順序、緊密排列存放了有效數據或未使用的存儲空間。2.根據權利要求1所述的一種固定大文件內部資源的控制方法,其特征在于:步驟(3)中,標識位是一個數值,其中數值為O表示該條索引已被失效,等待下一條索引寫入,數值為I則表示該條索引有效;數據存儲起始地址表示該信息記錄了該條索引對應的數據在數據存儲文件中的存儲地址;數據大小用于表明該條索引對應的數據的大小;數據最近訪問時間是每當該條索引所對應的數據被訪問時所記錄的時間數據,數據最近訪問時間會被更新記錄在數據塊信息文件中;校驗位用于校驗該條索引對應的數據的完整性,校驗位的值根據數據校驗算法計算得出。3.根據權利要求1所述的一種固定大文件內部資源的控制方法,其特征在于:步驟(I)中,自動讀取數據塊信息文件,將緩存文件的空間使用情況保存在內存中。4.根據權利要求1所述的一種固定大文件內部資源的控制方法,其特征在于:步驟(4)和步驟(5)中,數據儲存文件的大小根據指定的文件大小值生成。
【文檔編號】G06F3/06GK106095331SQ201610377680
【公開日】2016年11月9日
【申請日】2016年5月31日
【發明人】駱關培, 俞蔚
【申請人】浙江科瀾信息技術有限公司