This document summarizes and discusses the research paper "ARC: A Self-tuning, Low Overhead Replacement Cache" by Nimrod Megiddo and Dharmendra Modha. It was published in USENIX FAST '03 and describes the Adaptive Replacement Cache (ARC) algorithm, which has been broadly deployed in production systems including ZFS, illumos, and FreeBSD. The document reviews the key ideas, related work, performance results reported in the paper and enhancements to ARC over time.
1. Papers We Love:
ARC after dark
CTO
bryan@joyent.com
Bryan Cantrill
@bcantrill
2. Papers we love: ARC
• Discussing ARC: A self-tuning, low overhead replacement
cache by Nimrod Megiddo and Dharmendra Modha
• Appeared in USENIX FAST ’03
• Has been broadly deployed in production — most notably in
ZFS, in at least illumos (SmartOS, etc.) and FreeBSD
• As much as possible, want to let the paper speak for itself —
and provoke discussion!
40. ARC: Epilogue
• The ARC is the basis of the cache used by ZFS, with many
enhancements over time:
• Variable sized buffers — though now returning to be fixed
blocks with ARC buffer data (ABD)
• L2ARC to allow SSDs to be used as a cache
• Separate metadata lists
• Compressed ARC
• A challenge has been to make all of ARC variable-sized…