WILKERSON威爾克森過濾器結(jié)構(gòu)組合有哪些
WILKERSON威爾克森過濾器結(jié)構(gòu)組合有哪些
現(xiàn)有排重算法中,,文件級排重盡管排重開銷小,,但排重粒度過粗,,難以取得存儲空間的高效利用,;數(shù)據(jù)塊級排重算法能實現(xiàn)高效存儲,,但其附帶的存儲開銷過高,排重的時間開銷大,。研究分層排重結(jié)構(gòu),,應用雙布魯姆WILKERSON過濾器實現(xiàn)數(shù)據(jù)排重,優(yōu)化數(shù)據(jù)排重性能,,主要工作如下:針對數(shù)據(jù)重復有文件級的重復和數(shù)據(jù)塊級的重復之分,,提出一種基于雙布魯姆WILKERSON過濾器的數(shù)據(jù)排重算法。該算法使用兩個布魯姆WILKERSON過濾器構(gòu)成二級排重結(jié)構(gòu),,將排重過程分解成文件排重和數(shù)據(jù)塊排重兩部分,。算法首*入*級進行文件排重,然后將*級排重判定為不重復的文件分割成塊進行第二級數(shù)據(jù)塊排重,。利用這種分層排重結(jié)構(gòu),,通過*級將重復文件直接過濾掉,不進入第二級排重,,減少了數(shù)據(jù)塊排重的工作量,;通過第二級進入不重復文件內(nèi)部進行數(shù)據(jù)塊排重,,獲得了數(shù)據(jù)塊級的排重粒度。
將上述算法應用于文檔備份系統(tǒng)中,,實現(xiàn)對文檔的排重,,由于算法采用布魯姆WILKERSON過濾器對數(shù)據(jù)進行壓縮表達,存在誤判可能,,即假陽性誤判問題,。本文設計通過查詢元數(shù)據(jù)(保存數(shù)據(jù)相關信息)來為誤判糾錯。當布魯姆WILKERSON過濾器判斷數(shù)據(jù)為重復時,,首先將元數(shù)據(jù)預讀到內(nèi)存中,,在內(nèi)存中匹配元數(shù)據(jù)信息,若沒有找到,,再讀取保存元數(shù)據(jù)的文件—索引文件查詢元數(shù)據(jù)。通過內(nèi)存,、索引文件兩級元數(shù)據(jù)查詢,,杜絕了假陽性誤判的情況。由于為假陽性誤判糾錯需要對元數(shù)據(jù)進行大量訪問,,增加了排重時間開銷,,設計將索引文件緩存,保證元數(shù)據(jù)操作的高效,,以此提高排重效率,。但系統(tǒng)的句柄數(shù)限制了同時緩存的索引文件數(shù)目,若索引文件過多,,則不能同時緩存全部索引文件,,需要進行更多的磁盤IO,此時排重開銷與耗時都急劇升高,,針對這種情況,,采用動態(tài)哈希算法來分配元數(shù)據(jù)地址,將元數(shù)據(jù)保存在少數(shù)幾個索引文件內(nèi),,從而克服了句柄限制問題
WILKERSON威爾克森過濾器結(jié)構(gòu)組合有哪些