大規模的I/O流中有效識別大數據並增強時間局部性

一篇熱數據識別存儲外文翻譯,本文主要在講思想

原文題目:

 HDCat: Effectively Identifying Hot Data in
   Large-scale I/O Streams with Enhanced
  Temporal Locality

翻譯:大規模的I/O流中有效識別熱數據並增強時間局部性

外文網址:http://dsc.jnu.edu.cn/paper/2015/ICA3PPCH.pdf

本文主要講裏面的具體算法及思想


第一作者:陳嘉豪

論文簡單摘要:

熱數據對於優化現代計算機是非常重要的。熱數據識別能增加閃存的壽命,但是對低存儲消耗和低運行時間開銷是一個挑戰,本文提出了“熱數據捕獲器(HDCat)”,能通過增強時間侷限性在大規模I/O流中識別熱數據。HDCat包含兩條隊列,一條熱數據隊列,一條候選熱數據隊列。HDCat採用了D位計數器和最近位並且能有效地降低冷熱數據的轉換。最後使用了實例測試。

論文中幾個概念:

        熱數據:用戶訪問率很高

        時間局部性:如果一個信息項正在被訪問,那麼近期它可能還會被再次訪問

       閃存:斷電數據不會丟失,像USB

論文背景:

       傳統的熱數據識別算法僅僅記錄了當前的數據項,忽視了對應數據集的體積。然而,大多數採用傳統方法識別熱數據會造成大的存儲消耗和高運行時間開銷,並且沒有考慮時間局部性對熱數據識別有很大的影響。爲了克服這個問題,Hsieh提出了多哈希函數框架識別熱數據。這個算法採用了多哈希函數和一個布爾過濾器去捕獲數據訪問頻率,因此採用了一個計數器去準確捕獲訪問頻率信息。但是算法中存在的指數衰減模式使它很難去獲得數據訪問的時間局部性。

      熱數據識別方法在不同場景中有應用,緩存是一種典型的場景。緩存的缺點:不能在已有數據的位置進行更新,受冷熱數據轉換影響大,減少使用壽命,造成延時,寫入次數有限,備份花費高。本文提出了HDCat,主要思想是:

     1、根據最近位更新D位計數器,最近訪問的數據D位計數器增長更快比最近沒有範文的數據

     2、過濾機制是基於最低位的,當算法需要去移除數據,一定是D位計數器值最小,並且最近位爲0

     3、算法能有效解決運行時間消耗和存儲問題

      實現結果表明:當維持低存儲消耗和低運行時間開銷時,識別熱數據準確性提高。

    Hash算法: Hash可以通過散列函數將任意長度的輸入變成固定長度的輸出,也可以將不同的輸入映射成爲相同的相同的輸出,而且這些輸出範圍也是可控制的,所以起到了很好的壓縮映射和等價映射功能。Hash爲什麼會有這種 壓縮映射和等價映射功能,主要是因爲Hash函數在實現上都使用到了取模。常用的Hash函數:

      直接取餘法:f(x):= x mod maxM ; maxM一般是不太接近 2^t 的一個質數。
  ・乘法取整法:f(x):=trunc((x/maxX)*maxlongit) mod maxM,主要用於實數。
  ・平方取中法:f(x):=(x*x div 1000 ) mod 1000000); 平方後取中間的,每位包含信息比較多。

相關工作:

       布隆過濾器:目標記錄低存儲消耗信息

      D位計數器:一個布爾值記錄有限制,很多情況下不能滿足需求。塑性變量花費太多存儲空間。

                             D位計數器是一個D位數組,能記錄範圍0到(2的D次方-1)。開始值設爲0,當相應元素出現時,設置爲1,整個值超過(2的D次方-1)時,停止加1。D位計數器中包含B最大位,被叫做臨界值。B位後全爲0則表示數據沒有超出臨界值,

     熱數據識別算法:

             TLL:兩層LRU算法簡稱TLL包含一個熱數據列表和一個候選熱數據列表,長度固定,當一個請求到達時,TLL檢查是否有對應的邏輯區塊地址(LBA)在熱數據列表中

       如果有,數據被記錄成熱數據,否則視爲冷數據,如果在候選熱數據列表中,數據就變成熱數據,如果兩個表都沒有,插入到候選表中。

                      優點:有好的空間有效性,僅僅需要記錄熱數據和候選熱數據的訪問信息。

                      缺點:性能依賴於兩個表的長度,當表長短時,能減少存儲消耗,但它會不適當地降低熱點數據到候選列表,從而降低熱數據識別準確性,並且會出現高運行時間消耗。

            MHF:多hash函數框架簡稱MHF,採用了多hash函數和D位計數器。如圖1,

              MHF記錄數據訪問信息通過增加相應的計數器,更新數據訪問信息通過定期的使計數器除以2。如果B位後面有1,返回1,否則返回0。MHF採用K個獨立的hash函數,如果K個返回值爲1,則爲熱數據。如圖1,算法使用4位計數器和2位最大位,那麼4就是臨界值,在例子中,用4個函數f1,f2,f3,f4標記數據X,得到4個值:0010,0100,1111,1001,其中0100返回0,則判斷爲冷數據。

               優點:實現了低存儲消耗和低運行時間開銷

               缺點:最近訪問的信息沒有


HotData Catcher:

    HDCat概述:

         如圖2所示,HDCat由一個熱數據列表和一個候選熱數據列表組成,列表中每一項包含一個最近位和一個D位計數器。

       初始化設爲空,所有數據項爲冷數據,當數據到達時,先檢查是否在兩個列表中,任何列表如果包含改數據項,對應的D位計數器增加。如果數據在候選列表中,並且D位計數器值大於所給臨界值,改數據將插入熱數據列表。熱數據列表爲滿,利用過濾機制淘汰一項數據到候選列表。如果兩個列表都不包括,插入到候選列表,候選列表淘汰一項數據。

    HDCat細節:

     如果最近位爲0,D位計數器增加1,如果爲1,則增加2

     D位計數器達到最大值後,如果數據再次訪問也不會增加

      數據項的最近位將被設置爲1,熱值快速成長HDCat採用了老化機制來處理這個問題,即對D位計數器並不簡單地與增加,而是隨着時間的推移變少

    HDCat流程圖:

                     

       過濾機制:如果列表滿,需要淘汰元素時,最好是找到最近位爲0,D位計數器最小的項,但是需要遍歷整個列表,造成高運行時間消耗,過濾機制採用,只需找到D位計數器小於臨界值,就遍歷停止。

      老化機制:固定的時間沒訪問數據D位計數器減半     

      採樣機制:避免冷熱數據相互頻繁轉換,如果數據頻繁訪問,而候選表中有很長沒有訪問的,通過採樣機制可能就增大了

算法評估

     評估環境:相同的衰減間隔和老化機制,三種實跡數據收集從微軟的數據中心塊級別使用事件跟蹤的核心服務器,時間長度144小時,

                       每個記錄包括時間戳,請求類型,數據地址偏移,數據塊大小

                       硬件監控(hm),測試網站服務器(wdev),研究項目(rsrch)

                        hm和wdev有非常大的地址空間,rsrch小

     實驗結果:命中率越高越好,冷熱數據轉換率越低越好

                       命中率:終端用戶訪問加速節點時,如果該節點有緩存住了要被訪問的數據時就叫做命中,如果沒有的話需要回原服務器取,就是沒有命中。取數據的過程與用戶訪問是同步進行的,所以即使是重新取的新數據,用戶也不會感覺到有延時。 命中率=命中數/(命中數+沒有命中數), 緩存命中率是判斷加速效果好壞的重要因素之一。

    

   表1和表2,表示相互關係的參數表

     

      圖3表示了命中率的實驗結果,圖4用柱狀圖表示:

    圖5總結在不同緩存大小下,總的命中率大小



圖6表示轉換次數,圖7爲柱狀圖

總結

本文提出了熱數據識別算法(HDCat)利用D-bit計數器和最近位,實跡用於評估,和TTL、MHF作比較,HDCat可以準確地捕捉到數據訪問模式的時間局部性,實現了較高的命中率,低緩存存儲性和運行時開銷。此外,HDCat顯著降低了冷熱數據之間的轉換,從而降低寫入操作。因此HDCat是一個很好的候選方法優化性能閃速存儲器的可靠性。此外,我們認爲HDCat可以應用到許多場景以優化的計算機系統。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章