Caching using LRU is an ubiquitous metaphor in modern computing. Is it possible to improve on LRU across a wide range of workloads and cache sizes without incurring excess overhead or requiring workload specific pre-tuning? We present Adaptive Replacement Cache (ARC) algorithm that seems to achieve this tantalizing target. This article is a "how-to" on converting a LRU implementation into ARC.

By: Nimrod Megiddo, Dharmendra S. Modha

Published in: RJ10285 in 2003


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to .