[LINUX]高速緩衝區的用戶態實現

高速緩衝區的用戶態實現:高速緩衝區理論上也是比較好理解的一個數據結構,他的好處是減少對於慢速IO的高頻率訪問,從單機的內核態來說,慢速和快速主要是內存和磁盤之間的IO瓶頸,對於多機的分佈式文件系統來說,主要是磁盤和網絡傳輸之間的IO差異(因爲磁盤和內存內核已經有了),比較可行的方式是將文件塊建立一個本地的磁盤緩存,這個緩存可以利用高速緩衝的算法,每當有新的沒有緩存的文件塊下載過來的時候,從磁盤上找一塊空閒的區域,將其存儲進去,而刪除磁盤原來維護的hash表中的對應字段,表示舊的塊沒有了。每次要獲取新的文件塊的時候,從磁盤的hash表中先去判斷一下是不是有了,有了直接獲取,沒有的話,再從遠程去下載(類似於高速緩衝在磁盤上面的實現)。比如可以分配500g的空間,其中一部分用來存儲空閒表文件和hash表文件(metadata),剩下的部分用來存儲文件塊,至於偏移量等位置信息可以通過文件名稱的方式來劃分,比如每個文件塊20kb,那麼就可以按照20kb建立索引,這種基於文件塊的緩存相比直接基於文件的緩存,在分佈式文件系統場景,可以做成按照內容存儲,如果存儲過了,就沒有必要重複存儲,可以直接建立一個硬鏈接,這樣更加容易命中,傳輸量也小很多,總之,高速緩衝也是完全可以用在多計算機的文件系統上面的緩存技術。

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