Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Papers We Love: ARC after dark

Papers We Love: ARC after dark

My Papers We Love talk in San Francisco on October 12, 2017 on "ARC: A self-tuning, low overhead replacement cache." Video: https://www.youtube.com/watch?v=F8sZRBdmqc0

Bryan Cantrill

October 13, 2017
Tweet

More Decks by Bryan Cantrill

Other Decks in Technology

Transcript

  1. Papers We Love:
    ARC after dark
    CTO
    [email protected]
    Bryan Cantrill
    @bcantrill

    View Slide

  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!

    View Slide

  3. ARC in the abstract

    View Slide

  4. Introduction

    View Slide

  5. Book of Genesis, 1:1

    View Slide

  6. The Von Neumann architecture

    View Slide

  7. “The Memory Organ”

    View Slide

  8. “Entirely impractical”

    View Slide

  9. The problem

    View Slide

  10. Main themes

    View Slide

  11. Related work: Optimal

    View Slide

  12. Related work: Using recency with LRU

    View Slide

  13. Related work: Using frequency with LFU

    View Slide

  14. Related work: LRU-2

    View Slide

  15. Related work: LRFU

    View Slide

  16. Related work: ALRFU (AYFKM?!)

    View Slide

  17. Related work: MQ

    View Slide

  18. Related work: MQ, cont.

    View Slide

  19. Related work: “Multiple experts”

    View Slide

  20. Related work: Ghost caches

    View Slide

  21. Generic cache replacement policy (?)

    View Slide

  22. Fixed replacement cache

    View Slide

  23. Adaptive replacement cache

    View Slide

  24. Adaptive replacement cache

    View Slide

  25. Adaptive replacement cache

    View Slide

  26. Adaptive replacement cache

    View Slide

  27. Adaptive replacement cache

    View Slide

  28. Adaptive replacement cache

    View Slide

  29. Adaptive replacement cache

    View Slide

  30. ARC performance

    View Slide

  31. ARC performance

    View Slide

  32. ARC performance

    View Slide

  33. ARC performance vs. LRU

    View Slide

  34. ARC performance vs. FRC offline

    View Slide

  35. ARC performance: “Empirically universal”

    View Slide

  36. ARC performance: p over time

    View Slide

  37. ARC: Conclusions

    View Slide

  38. ARC: Endnotes

    View Slide

  39. ARC: Endnotes

    View Slide

  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…

    View Slide

  41. Peril of a variably-sized ARC!

    View Slide