1. 程式人生 > >基於Alluxio內存文件系統的緩存策略

基於Alluxio內存文件系統的緩存策略

bsp size 組織 自適應調整 記錄 如果 分布式文件系 距離 根據

Alluxio是一種基於內存的分布式文件系統,支持不同的緩存替換策略,來替換內存中的文件快。Alluxio中的文件時以文件塊形式組織,其中文件通過自己實現的inode數據結構記錄文件屬性並索引。

下面首先介紹幾種不同的緩存策略,這些緩存策略被廣泛的應用在web,數據庫,文件系統中。

1 基於訪問頻率的緩存策略

這種緩存策略是根據緩存單位的(在Alluxio中是文件塊Block)訪問頻率來進行緩存調度,最常用的策略是LFU(Least Frequently Used)策略。該策略每次淘汰訪問頻率最低的緩存單位。但是如果一個文件塊很早時被經常訪問,但最近一段時間訪問頻率很低,那總訪問頻率依然很高,無法被淘汰。LIRS( Low Inter-Reference Set)策略淘汰具有最長訪問間隔的單位,當緩存單位被訪問時,會更新訪問間隔,一般最近被頻繁訪問的文件塊都具有較短的訪問間隔。2Q與 LRU-2策略每次淘汰倒數第二次被訪問的時間距離現在最久的緩存項。這些基於訪問頻率的緩存策略都考慮了訪問時間對訪問頻率的影響,但這些策略對時間局部性良好的訪問次序,效果不是很好。

2 基於訪問時間的緩存策略

下面考慮訪問時間對緩存策略考量的影響,這種緩存策略是考慮或主要考慮緩存單元的訪問時間,被廣泛使用的策略是LRU緩存策略,這種策略淘汰最久沒被訪問的緩存塊。FIFO淘汰按先進先出策略淘汰,MRU則淘汰最近被訪問的文件塊。這些緩存策略未考慮訪問頻率的影響,所以效果也不是很好。

3 對訪問時間和訪問頻率共同考慮的訪問策略

LRFU( Least Recently Frequently Used)每次淘汰具有最小 CRF( Combined Recency and Frequency)值的緩存項,CRF值同時考慮了訪問時間和訪問頻率,ARC( Adaptive Replacement Cache)使用了兩個隊列,其中一個隊列管理訪問順序,另一個隊列管理訪問頻率,隊列大小可以自適應調整。但是,這兩種策略在針對循環訪問時,效果遠差於MRU 與 LIRS。(未完)

基於Alluxio內存文件系統的緩存策略