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 full-size 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 full-size slide

  3. ARC in the abstract

    View full-size slide

  4. Introduction

    View full-size slide

  5. Book of Genesis, 1:1

    View full-size slide

  6. The Von Neumann architecture

    View full-size slide

  7. “The Memory Organ”

    View full-size slide

  8. “Entirely impractical”

    View full-size slide

  9. Related work: Optimal

    View full-size slide

  10. Related work: Using recency with LRU

    View full-size slide

  11. Related work: Using frequency with LFU

    View full-size slide

  12. Related work: LRU-2

    View full-size slide

  13. Related work: LRFU

    View full-size slide

  14. Related work: ALRFU (AYFKM?!)

    View full-size slide

  15. Related work: MQ

    View full-size slide

  16. Related work: MQ, cont.

    View full-size slide

  17. Related work: “Multiple experts”

    View full-size slide

  18. Related work: Ghost caches

    View full-size slide

  19. Generic cache replacement policy (?)

    View full-size slide

  20. Fixed replacement cache

    View full-size slide

  21. Adaptive replacement cache

    View full-size slide

  22. Adaptive replacement cache

    View full-size slide

  23. Adaptive replacement cache

    View full-size slide

  24. Adaptive replacement cache

    View full-size slide

  25. Adaptive replacement cache

    View full-size slide

  26. Adaptive replacement cache

    View full-size slide

  27. Adaptive replacement cache

    View full-size slide

  28. ARC performance

    View full-size slide

  29. ARC performance

    View full-size slide

  30. ARC performance

    View full-size slide

  31. ARC performance vs. LRU

    View full-size slide

  32. ARC performance vs. FRC offline

    View full-size slide

  33. ARC performance: “Empirically universal”

    View full-size slide

  34. ARC performance: p over time

    View full-size slide

  35. ARC: Conclusions

    View full-size slide

  36. ARC: Endnotes

    View full-size slide

  37. ARC: Endnotes

    View full-size slide

  38. 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 full-size slide

  39. Peril of a variably-sized ARC!

    View full-size slide