[發明專利]基于ARC替換算法的HDFS小文件緩存管理方法在審
| 申請號: | 201710664858.1 | 申請日: | 2017-08-07 |
| 公開(公告)號: | CN107368608A | 公開(公告)日: | 2017-11-21 |
| 發明(設計)人: | 姚英彪;陳功;許曉榮;劉兆霆;馮維 | 申請(專利權)人: | 杭州電子科技大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F12/0813 |
| 代理公司: | 杭州千克知識產權代理有限公司33246 | 代理人: | 周希良 |
| 地址: | 310018 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 arc 替換 算法 hdfs 文件 緩存 管理 方法 | ||
技術領域
本發明涉及計算機HDFS分布式文件系統技術領域,特別涉及HDFS中一種小文件的緩存管理方法。
背景技術
伴隨著移動互聯網技術的高速發展以及電子商務的蓬勃發展,以微博、微信為代表的自媒體應用、以及淘寶為代表的電商網站等,迅速成為Web應用的排頭兵。這些自媒體應用、社交分享平臺的用戶從原來的信息接收者轉變成為了信息的提供者,他們隨時隨地都在向平臺上傳圖片等各種文件信息。由此造成的一個情況便是:網絡上產生了大量的小文件,并且這些小文件迅速充斥了整個互聯網。在海量小文件產生的科學計算和互聯網應用場景中,如何高效訪問小文件成為HDFS面臨的一個巨大挑戰。
HDFS是Hadoop的主要存儲框架,它采用主從結構,由名字節點(Namenode)和數據節點(Datanode)組成。名字節點管理文件系統的命名空間,數據節點負責實際數據塊的存儲。HDFS的數據節點在配置存儲目錄時通常將數據配置在硬盤中,客戶端通過訪問硬盤獲取數據。然而,在海量的小文件中存在著大量的“熱點數據”,這些數據會被各應用頻繁地訪問,因此,如果能夠對這類“熱點數據”進行緩存處理,將大大減少HDFS反復讀取硬盤所帶來的巨大時間消耗。針對緩存替換算法主要有兩種:基于時間局部性的緩存管理算法和基于訪問頻率的緩存管理算法。基于時間局部性的LRU類算法重點關注訪問數據的近期特性,每次置換的都是最久未訪問的數據塊。而基于訪問頻率的LFU類算法則重點關注訪問數據的頻率特性,每次置換的都是頻率最小的數據塊,保存了很多高頻數據項。但是,對于LRU類算法,當順序讀取大量的數據時,這些數據會充滿整個緩存空間,當緩存被存滿后,若想放入新的緩存數據,則需要淘汰最近最少使用的數據,在這種情況下,緩存中存放的永遠是新讀入的數據,而不是真正需要緩存的數據。同時,在LFU類算法中,新的數據只要不被頻繁讀取就會被淘汰,在實際應用中也存在很大的不足。為了吸收兩種算法中的有益想法,很多算法在時間局部性和訪問頻率兩個特性之間尋求平衡點,ARC(Adjustable Replacement Cache)替換算法是其中的佼佼者,它也可以用于HDFS的小文件管理。因此,本發明公布了一種基于ARC替換算法的HDFS小文件管理方法,ARC能夠利用LRU和LFU的優點,避免它們的缺點,具體的ARC實現過程可以參見文獻《ARC:a self-tuning,low overhead replacement cache》。
發明內容
本發明解決HDFS分布式文件系統以流式的方式訪問大文件時效率很高,但是當海量小文件的訪問特別是頻繁訪問重復的小文件時效率比較低的問題。
為了解決上述技術問題,本發明采用如下技術方案:
基于ARC替換算法的HDFS小文件緩存管理方法,首先在數據節點上使用tmpfs構建數據緩存區,其中,tmpfs是Linux/Unix系統上的一種基于內存的文件系統。在Namenode端集成兩個模塊:判斷模塊和決策模塊,在Datanode集成一個執行模塊。其次,將判斷模塊、決策模塊和執行模塊作為三個階段對小文件進行緩存替換操作。最后,當需要緩存小文件數據塊時,Namenode將與數據塊存儲的Datanode進行通信,并發出指令將數據塊緩存在數據節點的高速緩存中。
所述判斷模塊首先判斷請求信息類型,如果是訪問請求,再判斷訪問文件大小是否小于閾值Tf,如果是,則將該文件視為小文件,并使用決策模塊的ARC緩存替換算法進行處理,否則不做緩存處理;如果是創建、刪除信息,將直接交給執行模塊處理。
在文件的訪問過程中,所請求小文件如果存儲在緩存中,即為緩存命中,否則未能命中,然后根據訪問情況及緩存空間使用情況按照ARC算法進行文件的緩存替換操作。
所述決策模塊使用一個緩存列表來管理緩存區的文件,并根據緩存列表來選擇要替換的緩存文件對象,再由執行模塊按照決策模塊的指令進行文件緩存替換操作。
緩存管理方法可分為客戶端、名字節點和數據節點三個部分,客戶端通過RPC協議分別與名字節點和數據節點進行通信,完成對數據的訪問操作。
當客戶端向集群提交I/O請求后,Namenode可將請求分為三種類型:訪問請求、創建請求和刪除請求。
當客戶端向集群中的名字節點申請訪問數據時,包括以下3個步驟:
1)名字節點獲得待訪問的數據文件信息,判斷該文件是否位于緩存中;
2)若該文件已緩存,那么直接讀取數據節點上緩存的文件數據,并使用ARC算法更新緩存管理,此時為一次緩存命中,緩存中的數據將提供訪問請求服務;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州電子科技大學,未經杭州電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710664858.1/2.html,轉載請聲明來源鉆瓜專利網。





