面向混合存儲系統(tǒng)的低內存開銷熱點數(shù)據(jù)識別方法
【技術領域】
[0001] 本發(fā)明設及大規(guī)模混合存儲技術領域,尤其設及一種面向混合存儲系統(tǒng)的低內存 開銷熱點數(shù)據(jù)識別方法。
【背景技術】
[0002] 當前的大規(guī)模存儲系統(tǒng)對性能和成本都提出了較高的要求,混合存儲架構則是一 種能夠同時滿足該些需求的解決方案?;旌洗鎯ο到y(tǒng)中通過容量較小、性能較高的高端設 備保證性能,同時利用性能較低、價格便宜的低端設備降低成本,因而在該樣的異構存儲系 統(tǒng)中,高端設備一般用來保存頻繁訪問的熱點數(shù)據(jù)、低端設備則用來保存不常訪問的冷數(shù) 據(jù),但要實現(xiàn)該一優(yōu)化措施在很大程度上則需要依賴于熱點數(shù)據(jù)的準確識別。
[0003] 熱點數(shù)據(jù)一般是通過對數(shù)據(jù)訪問的歷史作統(tǒng)計分析識別出來,基于該一原理目前 從業(yè)者設計實行了大量的熱點數(shù)據(jù)識別方法。原則上,大部分緩存替換策略都屬于熱點數(shù) 據(jù)識別方法,其中WLFU(Least化equentlyUsed)策略最具代表性。在LFU策略中,為每 一份數(shù)據(jù)維護一個計數(shù)器,當一份數(shù)據(jù)被訪問時,其對應的計數(shù)器遞增1 ;計數(shù)器數(shù)值較大 的數(shù)據(jù)即為熱點數(shù)據(jù)。但該種方法需要為每一份數(shù)據(jù)維護一個整數(shù)類型的計數(shù)器,內存開 銷較大。
[0004] BloomFilter(布隆過濾器)是一種低內存開銷的數(shù)據(jù)結構,它可用來記錄訪問 歷史,所W可用于熱點數(shù)據(jù)識別。BloomFilter維護一個位數(shù)組和k個哈希函數(shù),其中,位 數(shù)組中的所有位初始化為0。當一個頁面被訪問時,k個哈希函數(shù)根據(jù)該頁面的頁面號X計 算出k個數(shù)值hi (X),h2(X),…,hk (X),該k個數(shù)值分別對應位數(shù)組中k個位,只要將該k個 位都置為1,就可將頁面X記錄到了BloomFilter中。BloomFilter能夠W很低的空間開 銷記錄很多的訪問頁面,但它并不能直接用于熱點數(shù)據(jù)識別中,具有包括W下兩點原因;
[0005]l)BloomFilter不能記錄對數(shù)據(jù)的重復訪問;不管頁面X被訪問了多少次,Bloom FiIter僅僅將X對應的k個位hi(X),h2(X),…,hk(X)置為1,而沒有采取任何措施記錄X被 訪問的次數(shù)。由于沒有訪問次數(shù)信息,BloomFilter無法從訪問歷史中識別出熱點數(shù)據(jù)。
[0006] 2)BloomFilter只能不斷地記錄新的頁面,而不能刪除已經(jīng)記錄在BloomFilter 中的任何頁面,導致記錄的訪問歷史越來越長;而實際上,早期的訪問歷史對熱點數(shù)據(jù)識別 已經(jīng)沒有利用價值,記錄過長的訪問歷史反而會增加內存開銷。
[0007] 為了克服W上BloomFilter存在的兩大缺陷,有研究人員提出利用多個Bloom Filter來記錄訪問歷史的方法,該方法被稱為多BloomFilter方法(MultipleBloom Filters方法),簡稱MBFs方法。當一個頁面X被訪問時,從其維護的多個BloomFilter中 選擇一個還沒有記錄X的BloomFilter,并將X記錄在該選定的BloomFilter中。該樣, 一個被多次訪問的頁面將會被記錄到多個BloomFilter中,從而被識別為熱點數(shù)據(jù)。另外, MBFs方法周期性的選擇一個BloomFilter,將其位數(shù)組中的所有位清零,從而刪除了記錄 在該BloomFilter中的所有頁面,借此方法刪除早期的訪問歷史。
[000引 MBFs方法雖然能夠借助多個BloomFilter記錄頁面的訪問次數(shù),并通過周期性 的清除一個BloomFilter刪除早期的訪問歷史,從而能夠高效地從訪問歷史中識別出熱點 數(shù)據(jù);但是,MBFs方法也存在兩方面的缺陷;一方面,由于采用多個BloomFilter數(shù)據(jù)結 構,MBFs方法的內存開銷仍然較高;另一方面,MBFs能夠記錄的頁面訪問次數(shù)的范圍有限; 假定MBFs方法維護n個BloomFilter,對于特定頁面,該方法能為其記錄的最大訪問次數(shù) 為n;如果該頁面的訪問次數(shù)超過n,則超出部分的訪問信息不能記錄在BloomFilter中, 使得丟失了會一部分熱點信息。MBFs方法在上述兩方面的缺陷由于不可同時彌補,即增加 訪問次數(shù)的計數(shù)范圍(n)必然會導致內存開銷的增加,因此MBFs方法也很難應用到大規(guī)模 混合存儲系統(tǒng)中。
【發(fā)明內容】
[0009] 本發(fā)明要解決的技術問題是克服現(xiàn)有技術的不足,提供一種實現(xiàn)方法簡單、內存 開銷低、能夠實現(xiàn)大數(shù)據(jù)量的熱點數(shù)據(jù)識別、且識別準確度高的面向混合存儲系統(tǒng)的低內 存開銷熱點數(shù)據(jù)識別方法。
[0010] 為解決上述技術問題,本發(fā)明提出的技術方案為:
[0011] 一種面向混合存儲系統(tǒng)的低內存開銷熱點數(shù)據(jù)識別方法,具體實施步驟為:
[0012]1)定義超大計數(shù)容量的布隆過濾器UBFOJltra-countingBloomFilter),所述超 大計數(shù)容量的布隆過濾器UBF通過位數(shù)組W及映射各頁面至所述位數(shù)組的k個哈希函數(shù)記 錄頁面的各次訪問;初始化所述位數(shù)組為0并設定各個哈希函數(shù);
[0013] 2)當頁面X被訪問時,通過所述位數(shù)組查詢頁面X的熱度,所述頁面X的熱度為頁 面X在位數(shù)組的對應k個位中值為1的位數(shù);
[0014] 3)判斷頁面X的熱度是否小于預設的首次記錄闊值t,首次記錄闊值t小于哈希 函數(shù)的個數(shù)k,若為是,判定頁面X尚未記錄在UBF,針對頁面X在位數(shù)組的k個對應位,通 過將其中t個位由0翻轉為1記錄頁面X;否則判定頁面X已記錄在UBF中,針對頁面X在 位數(shù)組的k個對應位,通過將其中一個值為0的位按第一預設概率翻轉為1進行頁面X的 重復訪問計數(shù);
[001引 4)比較頁面X的熱度與指定的熱度闊值的大小,若頁面X的熱度大于熱度闊值,頁 面X對應的數(shù)據(jù)識別為熱點數(shù)據(jù);跳轉執(zhí)行步驟2)。
[0016] 優(yōu)選地,所述步驟3)中第一預設概率為1/2^,其中h為頁面X的熱度,t為首次 記錄闊值。
[0017] 優(yōu)選地,所述步驟3)中將一個值為0的位翻轉為1前還包括針對一些1位進行隨 機清零的步驟,具體步驟為;統(tǒng)計待翻轉為1的位所在字節(jié)中值為1的位的數(shù)目m,根據(jù)統(tǒng) 計得到的數(shù)目mW第二預設概率將待翻轉為1的位所在字節(jié)的各個位清零。
[001引優(yōu)選地,所述第二預設概率為l/8-m,其中m為待翻轉為1的位所在字節(jié)中值為1 的位的數(shù)目。
[0019] 優(yōu)選地,所述步驟2)的具體步驟為:
[0020] 2. 1)當頁面X接收到被訪問請求時,初始化計數(shù)器i和熱度h為0,跳轉執(zhí)行步驟 2.2);
[0021]2. 2)計算頁面X對應的第i個哈希函數(shù)的值hi (X),檢測頁面X在所述位數(shù)組中 對應第hi(X)位的值,若檢測到對應第hi(X)位的值為1,則跳轉執(zhí)行步驟2. 3);若檢測到對 應第hi(X)位的值為0,則跳轉執(zhí)行步驟2. 4);
[0022] 2. 3)將熱度h加1,跳轉執(zhí)行步驟2. 4);
[0023] 2. 4)將計數(shù)器i加1,跳轉執(zhí)行步驟2. 2),直至計數(shù)器i的值等于哈希函數(shù)的個數(shù) k,將熱度h作為頁面X的熱度輸出,跳轉執(zhí)行步驟3)。
[0024] 優(yōu)選地,所述步驟1)中初始化所述位數(shù)組的具體步驟為:
[0025] 1. 1)設定哈希函數(shù)的個數(shù)kW及需要記錄的訪問歷史長度n;
[0026] 1. 2)根據(jù)設定的哈希函數(shù)的個數(shù)k、訪問歷史長度n計算所述位數(shù)組所需的存儲 空間大小,在內存中為所述位數(shù)組申請一片對應大小的存儲空間;
[0027] 1. 3)將所述位數(shù)組對應的存儲空間初始化為0。
[002引優(yōu)選地,所述位數(shù)組所需的存儲空間與kXn成正比,其中k為哈希函數(shù)的個數(shù),n為需要記錄的訪問歷史長度。
[0029] 優(yōu)選地,所述步驟4)還包括根據(jù)頁面X的熱度按式(1)調整指定的熱度闊值大小 W用于下一次熱點數(shù)據(jù)識別的步驟巧);
[0030]
(1)
[003U其中,h表示頁面X的熱度,NewT虹eshold表示調整后的熱度闊值,T虹eshold表 示調整前的熱度闊值,063^6地0巧3肖63表示預先設定的需要識別出的熱點頁面的數(shù)目。
[0032] 優(yōu)選地,所述步驟5)還包括當頁面X識別為熱點數(shù)據(jù)時,按式(2)上調所述調整 后的熱度闊值,得到最終調整后的熱度闊值用于下一次熱點數(shù)據(jù)識別的步驟;
[0033]
(2)
[0034] 其中,h表示頁面X的熱度,Newl'虹eshold表示調整后的熱度闊值,Newl'虹eshold' 表示最終調整后的熱度闊值,〇63山6地0巧3肖63表示預先設定的需要識別出的熱點頁面的 數(shù)目。
[0035] 與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于:
[0036] 1)本發(fā)明通過定義超大計數(shù)容量的布隆過濾器UBF數(shù)據(jù)結構記錄頁面的各次訪 問,只需通過小于哈希函數(shù)個數(shù)的t位信息即可記錄一個頁面,能夠降低內存開銷,同時通 過將頁面對應位中的0位W-定概率翻轉為1來進行頁面的重復訪存計數(shù),僅需維護一個 超大計數(shù)容量的布隆過濾器UBF即可實現(xiàn)頁面的多次訪問