Skip to content

Efficiency

Ben Manes edited this page Sep 22, 2015 · 53 revisions

Work in Progress


Least Recently Used (LRU) is a classic, popular eviction policy due to its simplicity and good hit rate in common scenarios. In favorable workloads LRU is rarely optimal and in cases such as full table scans the hit rate may be very low. The following sections compare the best alternatives after an extensive evaluation. For brevity only the top three performing O(1) eviction policies are discussed. This excludes Clock based policies that are sacrifice O(n) worst case times for to be more amenable to concurrent implementations.

For Caffeine 2.0 the Window TinyLfu policy was chosen due to its optimal hit rate, low memory footprint, and simplicity.

Adaptive Replacement Cache

ARC...

Low Inter-reference Recency Set

LIRS...

Window TinyLfu

W-TinyLfu...

Simulations

Clone this wiki locally