We're updating the issue view to help you get more done. 

Add ARC or CAR algorithm

Description

Both ARC and CAR algorithm's look like they could be an improvement on LIRS and LRU algorithms. Specifically, both of them are better at keeping frequently used items in cache.

From: http://en.wikipedia.org/wiki/Cache_algorithms#Examples

Adaptive Replacement Cache (ARC)
Constantly balances between LRU and LFU, to improve the combined result. ARC improves on SLRU by using information about recently-evicted cache items to dynamically adjust the size of the protected segment and the probationary segment to make the best use of the available cache space.

Clock with Adaptive Replacement (CAR)
Combines Adaptive Replacement Cache (ARC) and CLOCK. CAR has performance comparable to ARC, and substantially outperforms both LRU and CLOCK. Like ARC, CAR is self-tuning and requires no user-specified magic parameters.

More details on ARC are at http://blog.acolyer.org/2014/10/08/outperforming-lru-with-an-adaptive-replacement-cache-algorithm/, and the paper is at http://dbs.uni-leipzig.de/file/ARC.pdf.

CAR details are at https://www.usenix.org/conference/fast-04/car-clock-adaptive-replacement

If there is interest in this then I could look at benchmarking both of them, and putting together a patch.

Environment

None

Status

Assignee

Sean Corfield

Reporter

Daniel Compton

Labels

None

Approval

None

Patch

None

Priority

Minor