首页 > 代码库 > 基于Alluxio内存文件系统的缓存策略

基于Alluxio内存文件系统的缓存策略

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内存文件系统的缓存策略