Johnny Cache: the End of DRAM Cache Conflicts (in Tiered Main Memory Systems)
summary
Shows that treating DRAM as a hardware cache works if conflicts are eliminated: two low-overhead techniques—static page-allocation that avoids overlapping cache indices and sampling-based hot-page detection with dynamic remapping—reduce cache conflicts almost entirely. Implemented as JC in the Linux kernel on an Intel Optane machine and tested on HPC, key-value stores and databases against stock Linux and HeMem, the approach reaches near-optimal DRAM speed (≈85%) and outperforms alternatives by up to 5x; surprising result: static avoidance alone often suffices.
AI-written summary · about
chapters (13)
- 0:00Tiered memory systems intro
- 1:34DRAM cache basics
- 3:04OS visibility impact
- 4:28Cache granularity differences
- 4:50DRAM cache conflicts
- 6:18Reducing conflicts with policies
- 8:07Introducing Johnny Cache
- 8:50Micro-benchmark performance
- 10:15Hot page detection limits
- 12:45Hardware caching advantages
- 13:48Small item workloads
- 14:08Streaming workload limits
- 14:50Summary
related talks
06mEarly experience of Utilizing Persistent Memory for Database... (Work-in-Progress Report)
15mImproving Performance of Flash Based Key-Value Stores Using Storage Class Memory...
17mScalaCache: Scalable User-Space Page Cache Management with Software-Hardware...
35mDeveloping Software for Persistent Memory
17mPreview: Persistent Memory
50mLet's talk about the cache!
17mBreak On Through to the Other Side: Pooling Memory Elastically with RamRyder
43mPromise and Pitfalls of Persistent Memory
