非文件系統的可靠存儲方法
2023-12-05 04:23:36 2
專利名稱:非文件系統的可靠存儲方法
技術領域:
本發明涉及一種數據高效、可靠存儲技術,應用於視頻監控行業、IPTV等需要大量數據存儲的行業。
背景技術:
目前,基於硬碟的數據存儲大多都基於文件系統。從windows的FAT文件系統到NTFS,都是基於作業系統提供的硬碟管理功能進行的數據非易失存儲,包括Linux的ext2/3等也是如此。基於文件系統的數據存儲給我們的開發帶來了極大的簡便,但是其效率和可靠性一直稱為人們爭執的焦點。這個焦點也催生了更多、更好的文件系統。然而文件系統再怎麼升級,也只是一個通用的基於人們一般應用習慣的產物。對於一些 特殊行業,如視頻監控、IPTV。這些行業的數據的第一個特點就是龐大,一個監控攝像頭、一個電影影片其大小動輒幾百兆。第二個特點就是文件大小基本固定,也就是說這些行業中不會在存儲數據的時候摻雜著存儲一些較小的文件,比如不會摻雜臨時保存的一個網頁等。第三個特點就是希望文件有序排列,也就是文件存儲能夠按照日期或者某種固定的排列方式在硬碟中進行記錄。第四個特點就是文件的讀取和寫入非常頻繁,這樣對通用文件寫碎片管理就帶來的極大的挑戰。
發明內容
本發明的目的在於A :實現基於非文件系統的數據存儲方法;B :實現文件存儲和文件信息索引的獨立存儲;C :實現文件和文件索引信息的基本同步。為實現上述目的,本發明採用以下技術方案
本發明包括數據的寫入過程、數據的讀取過程、數據的刪除過程,
在所述數據的寫入過程中,操作者打開本地資料庫,獲取當前寫入磁碟的偏移地址;然後打開硬碟設備,將文件指針偏移到寫入位置;當有數據寫入時,在本地資料庫建立寫入標誌並開始寫入數據;
在所述數據的讀取過程中,根據應用層傳入的檢索條件,檢索出文件的本地資料庫記錄,從記錄中獲取文件在硬碟記錄中的偏移地址,從該偏移地址中將數據讀出,以回調形式返回給應用層;
在所述數據的刪除過程中,操作者在本地資料庫中對該文件標識為刪除。所述的本地資料庫採用Berkeley DB作為原型資料庫。在數據的讀取過程中,本地資料庫記錄該數據的讀取次數。採用上述技術方案的本發明,很好地將文件存儲和文件信息索引獨立開來,提高了存儲的效率。另外,有信息需要刪除時只是在本地資料庫中對相應的記錄進行標記,而不是物理的文件刪除。這個保證了過程中最小的對磁碟進行操作,延長了磁碟的工作壽命。方法中將數據進行獨立存儲,對應的數據信息則進入資料庫進行記錄。當需要讀數據進行訪問時,首先對資料庫進行查詢獲取數據的磁碟地址直接進行讀取。最大限度的減少對目錄的遍歷與搜索,提供了數據讀取的效率減少對硬碟不必要的操作。數據寫入時,直接從磁頭當前位置寫入。數據寫入完成後將信息寫入資料庫。完成數據的同步寫入,即數據存儲完成後同步寫入記錄來對數據進行描述。
圖I為本發明中硬碟獲取的流程圖。圖2為本發明中視頻數據獲取的流程圖。圖3為本發明中視頻數據寫入的流程圖。
具體實施例方式一般來說,非文件系統的存儲過程包括數據的寫入過程、數據的讀取過程、數據的·刪除過程。在對數據進行各種操作之前,首先對本地資料庫進行操作因為系統中,存在大量的需要實時存儲的記錄信息。本發明採用了 Berkeley DB為原型資料庫,對系統中的信息進行存儲。涉及資料庫的打開、關閉、讀取、寫入、檢索。由於該資料庫沒有採用類SQL資料庫,而是為了性能拋棄了 SQL語句支持,進而提升了資料庫性能。Berkeley DB是一個開放的資料庫,其接口是開放的、公開的。其次,進行硬碟的打開和指針定位硬碟在作業系統看來只是一個物理設備,以Linux為例內核將其表現為/dev/sd**。這個就是我們要操作的設備,如果系統中只有一塊
硬碟則為sda。依次類推為sdb、sdc、sdd、sde......,而在每個硬碟的分區則為sdal、sda2、
sda3 (以第一塊兒硬碟的不同分區為例)等。我們需要打開的設備為硬碟設備、而不是具體的某個分區。也就是我們應該打開sdb、sdc、sdd、sde……設備,設備打開後根據資料庫中記錄的該硬碟的偏移地址,對硬碟的操作文件指針進行偏移。數據寫入接入就緒狀態,等待應用數據到達。如圖I、圖3所示,數據的寫入有數據寫入業務時,首先打開本地資料庫,獲取當前應寫入磁碟偏移地址。然後打開硬碟設備,將文件指針偏移到應該寫入位置。當有數據寫入時,在本地資料庫建立寫入標誌並開始寫入數據。當一段數據寫入完畢後,將完整的信息存入資料庫。過程中只要一方存在問題就認為該記錄或者文件,存在異常應進行回滾。如圖2所示,數據的讀取根據應用層傳入的檢索條件。檢索出文件的資料庫記錄,從記錄中獲取文件在硬碟記錄中的偏移地址。從該地址依次將數據讀出,以回調形式返回給應用層。並記錄該數據讀取計數,以便統計文件讀取概率。為後續提高文件命中率提供依據。數據的刪除該過程和讀取時,資料庫獲取基本一致。不同的是,該功能是從資料庫中將文件標識為刪除。並非直接將物理文件刪除,以此減少對硬碟的操作概率,延長了磁碟的工作壽命。
權利要求
1.一種非文件系統的可靠存儲方法,它包括數據的寫入過程、數據的讀取過程、數據的刪除過程,其特徵在於 在所述數據的寫入過程中,操作者打開本地資料庫,獲取當前寫入磁碟的偏移地址;然後打開硬碟設備,將文件指針偏移到寫入位置;當有數據寫入時,在本地資料庫建立寫入標誌並開始寫入數據; 在所述數據的讀取過程中,根據應用層傳入的檢索條件,檢索出文件的本地資料庫記錄,從記錄中獲取文件在硬碟記錄中的偏移地址,從該偏移地址中將數據讀出,以回調形式返回給應用層; 在所述數據的刪除過程中,操作者在本地資料庫中對該文件標識為刪除。
2.根據權利要求I所述的非文件系統的可靠存儲方法,其特徵在於所述的本地資料庫採用Berkeley DB作為原型資料庫。
3.根據權利要求I所述的非文件系統的可靠存儲方法,其特徵在於在數據的讀取過程中,本地資料庫記錄該數據的讀取次數。
全文摘要
一種非文件系統的可靠存儲方法,它包括數據的寫入過程、數據的讀取過程、數據的刪除過程,在所述數據的寫入過程中,操作者打開本地資料庫,獲取當前寫入磁碟的偏移地址;然後打開硬碟設備,將文件指針偏移到寫入位置;當有數據寫入時,在本地資料庫建立寫入標誌並開始寫入數據;在所述數據的讀取過程中,根據應用層傳入的檢索條件,檢索出文件的本地資料庫記錄,從記錄中獲取文件在硬碟記錄中的偏移地址,從該偏移地址中將數據讀出,以回調形式返回給應用層;在所述數據的刪除過程中,操作者在本地資料庫中對該文件標識為刪除。
文檔編號G06F17/30GK102890677SQ20111020270
公開日2013年1月23日 申請日期2011年7月20日 優先權日2011年7月20日
發明者賈小波, 李偉, 高磊, 王鵬麗, 陳啟航, 於文華 申請人:鄭州威科姆科技股份有限公司