Logging in persistent memory: to cache, or not to cache?

Logging in persistent memory: to cache, or not to cache?
复制标题

记录在持久内存中:缓存还是不缓存?

DOI:
10.1145/3132402.3132429
复制
发表时间:
2017
期刊:
The International Symposium on Memory Systems
影响因子:
--
通讯作者:
Zhao, Jishen
Zhao, Jishen
中科院分区:
--
文献类型:
--
作者:
Li, Mengjie;Ogleari, Matheus;Zhao, Jishen

文献摘要

相似文献

持久内存是一种新型内存,其功能是传统存储系统和主内存的混合体。它结合了存储的数据持久性和内存的快速加载/存储接口的优点。为了保持数据在内存中的持久性,一种广泛使用的机制是日志记录——除了像传统内存系统中那样更新原始数据结构之外,持久内存系统还会记录更新。之前的大多数持久内存研究都表明日志更新应该绕过缓存层次结构,因为日志仅用于系统恢复,在程序执行期间不会被重用。缓存日志只会污染关键的缓存资源,从而导致性能下降。然而,我们的研究表明,当前的缓存绕过方案(例如,缓存绕过指令和写组合缓冲区)对于容纳日志写入而言并不是最佳选择。与可缓存日志记录相比,使日志不可缓存可能会降低持久内存系统的性能。本演示文稿根据我们的实验结果概述了我们对可缓存和不可缓存日志记录之间权衡的观察。我们还分析了导致这种权衡的原因。
Persistent memory is a new class of memory that functions as a hybrid of traditional storage systems and main memory. It combines the benefits of both the data persistence property of storage and the fast load/store interface of memory. In order to maintain data persistence in memory, a widely used mechanism is logging - in addition to updating the original data structures as in traditional memory systems, persistent memory systems also log the update. Most previous persistent memory studies suggest that log updates should bypass the cache hierarchy because the log is only used for system recovery and will not be reused during program execution. Caching the log only contaminates critical cache resources, leading to performance degradation. However, our study shows that current cache bypassing schemes (e.g., cache bypassing instructions and write-combining buffers) are sub-optimal for accommodating log writes. Making the log uncacheable can degrade persistent memory system performance worse than with cacheable logging. This presentation outlines our observations of the trade-offs between cacheable and uncacheable logging, based on our experimental results. We also analyze the reasons that lead to such trade-offs.