Cache
06 May 2023
[论文笔记]Arc: A Self-Tuning, Low Overhead Replacement Cache
Arc 是一种 LRU 改进算法,在很多负载环境中性能优于常用的 LRU 算法。
基本思想 #
我们需要先了解一下什么是 recency,什么是 frequency。recency 是最近访问时间,frequency 是访问频率。LRU 只基于了 recency,LFU 基于 frequency。所以这两个算法都没有同时利用好 frequency 和 recency,所以在面对不同 workload 的时候性能会有所下降。ARC 其实就是结合了 recency 和 frequency。
DBL #
作者在论文中先引入 DBL 这个算法。 DBL 提出用两个 LRU 来缓存。一个为 L1,用来存放首次访问的数据,另外一个为 L2,用来存放至少访问了两次的数据。如果一个 LRU 的大小是 c,则总的缓存大小是 2c。
Fig.1 是 DBL 的算法。