專利名稱:一種基于相似性的文件分類方法
技術領域:
本發明屬于計算機存儲系統領域,具體涉及一種基于相似性的文件分類方法,用于提高按相似性對文件進行分類時的處理速度,降低內存占用。
背景技術:
圖靈獎獲得者Jim Gray提出了一個經驗定律網絡環境下,每18個月產生的數據量等于有史以來數據量之和。國際數據公司(IDC)最新“數字宇宙”研究結果顯示,全世界的信息量每兩年以超過翻番的速度增長,2011年產生和復制1. 8ZB的海量數據,其增長速度超過摩爾定律。大數據已經成為學術界與工業界討論的熱點話題。如何有效的存儲這些數據已經成為目前存儲系統面臨的一大挑戰。分布式存儲系統解決了海量數據的存儲問題,重復數據刪除技術則解決了節省存儲空間和網絡帶寬的問題。對于像網盤這樣的網絡應用,由于其管理著海量的數據,而且文件之間有較高的相似性,利用相似性進行重復數據刪除可以起到提高存儲空間使用效率,提升系統輸入輸出吞吐量的效果。目前業界所使用的線上重復數據刪除系統多是采用了局部性原理來提高重刪處理的吞吐率,緩解磁盤瓶頸。最新的研究成果顯示,利用相似性可以在損失少量重復數據刪除率的情況下,提升重復數據刪除的速度,吞吐率,減少重復數據刪除時占用的資源。所以,將這一新的技術加以研究,解決其在延遲,刪除等方面的問題后,將顯著提升存儲系統的磁盤利用率,吞吐率,降低對網絡的需求。目前公開的主流相似數據檢測技術,主要有三種,第一種是基于瓦(shingle)的檢測技術,見Broder AZ.1dentifying and filtering near-duplicatedocuments.1n Giancarlo R,Sankoff D,eds. Proc. of the Ilth Annual Symp. OnCombinatorial PatternMatching. London :Springer-Verlag,2000. 1-10 ;該方法實現簡單,適用性廣,在實際系統中多有使用,但計算量大,內存占用大;第二種是基于布隆過濾器(bloom filter)的檢測技術,見Jain N,Dahlin M,TewariR. Taper Tiered approach for eliminatingredundancy in replica synchronization.1n Proc. of the4th Usenix Conf. on Fileand Storage Technologies(FAST2005). Berkeley USENIX Association,2005. 281-294.這種方法比第一種方法在時間和空間開銷有較大優勢,但存在一定的錯誤匹配概率,計算量和內存占用仍然有進一步減小的空間;第三種是基于模式匹配的檢測技術,見Manber U. Finding similar files in a large file system.1n Proc. of the USENIXWinter 1994Technical Conf. Berkeley USENIX Association,1994. 1-10.該方法則需要對整個文件集進行掃描,也沒有解決計算量和內存占用較大的問題。MD5哈希算法與SHAl哈希算法,都是計算機廣泛使用的哈希算法,主流編程語言已有MD5哈希算法與SHAl哈希算法的實現
發明內容
本發明提供一種基于相似性的文件分類方法,解決現有分類方法計算量和內存占用較大的問題。本發明所提供的一種基于相似性的文件分類方法,包括下述步驟(I)分塊步驟,包括下述子步驟(1.1)將文件字節流上的開始與結束位置作為兩個分界點,將一個窗口的后沿置于文件字節流的開始位置上,利用哈希函數計算窗口內字節的哈希值,所述窗口長度LO為4字節 1024字節;所述哈希函數的散列空間不大于設定的塊最大字節數P,P = 128 8192 ;(1.2)判斷所述哈希值與預定值是否相同,是則進行子步驟(1. 3),否則轉子步驟(1. 4),所述預定值從所述哈希函數的值域中任意選擇一個;(1. 3)將窗口的前沿所在字節作為當前分界點,判斷當前分界點與前一個分界點之間的字節數是否小于設定的塊最小字節數,是則忽略當前分界點,執行子步驟(1. 4),否則執行子步驟(1. 5),所述塊最小字節數為8 P ;(1.4)將所述窗口沿文件字節流滑動一個字節,判斷窗口前沿與前一個分界點之間的字節數是否達到設定的塊最大字節數P,是則把窗口前沿設定為當前分界點,執行子步驟(1. 5),否則計算窗口內字節的哈希值,轉子步驟(1.2);(1.5)將當前分界點與前一個分界點之間的字節作為一個塊,記為當前塊,將窗口后沿置于文件字節流上當前分界點的下一個字節處,執行步驟(2);(2)計算校驗和步驟計算檢驗和s,并將其保存在臨時校驗和結果集中,s = a+2%,其中,a、b為中間參數
權利要求
1.一種基于相似性的文件分類方法,包括下述步驟 (1)分塊步驟,包括下述子步驟(1.1)將文件字節流上的開始與結束位置作為兩個分界點,將一個窗口的后沿置于文件字節流的開始位置上,利用哈希函數計算窗口內字節的哈希值,所述窗口長度LO為4字節 1024字節;所述哈希函數的散列空間不大于設定的塊最大字節數P,P = 128 8192 ;(1.2)判斷所述哈希值與預定值是否相同,是則進行子步驟(1.3),否則轉子步驟(1. 4),所述預定值從所述哈希函數的值域中任意選擇一個; (1. 3)將窗口的前沿所在字節作為當前分界點,判斷當前分界點與前一個分界點之間的字節數是否小于設定的塊最小字節數,是則忽略當前分界點,執行子步驟(1. 4),否則執行子步驟(1. 5),所述塊最小字節數為8 P ; (1.4)將所述窗口沿文件字節流滑動一個字節,判斷窗口前沿與前一個分界點之間的字節數是否達到設定的塊最大字節數P,是則把窗口前沿設定為當前分界點,執行子步驟(1. 5),否則計算窗口內字節的哈希值,轉子步驟(1.2); (1. 5)將當前分界點與前一個分界點之間的字節作為一個塊,記為當前塊,將窗口后沿置于文件字節流上當前分界點的下一個字節處,執行步驟(2); (2)計算校驗和步驟 計算檢驗和s,并將其保存在臨時校驗和結果集中, s = a+216b, 其中,a、b為中間參數
2.如權利要求1所述的基于相似性的文件分類方法,其特征在于 所述分塊步驟中,所述哈希函數為
3.如權利要求1所述的基于相似性的文件分類方法,其特征在于 所述分類步驟中,計算指紋值采用MD5哈希算法或者SHAl哈希算法。
全文摘要
一種基于相似性的文件分類方法,屬于計算機存儲系統領域,解決現有分類方法計算量和內存占用較大的問題。本發明包括分塊步驟、計算校驗和步驟、統計步驟和分類步驟。本發明對文件數據的處理不需要隨機讀寫,只需要從頭到尾的進行一次處理,就可以完成分塊,計算校驗和,統計,排序以及最終確定分類所有步驟;可以高效的獲取文件間的關聯信息,將在二進制數據層面上相似的文件劃歸為一類,對文件給出所屬類別的唯一標識,在判定兩個文件是否相似時,只需要判斷它們所屬類別的標識是否相同即可,處理速度快,占用內存少,可以通過運行參數調整判定精度;適用于各類需要獲取數據相似性的應用,特別面向存儲、數據去重的相關應用。
文檔編號G06F17/30GK103049263SQ20121053747
公開日2013年4月17日 申請日期2012年12月12日 優先權日2012年12月12日
發明者王芳, 馮丹, 陳儉喜, 杜鑫, 鄭超 申請人:華中科技大學