arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1804.00701cs.DC
收藏

持久内存事务

Persistent Memory Transactions

Virendra Marathe, Achin Mishra, Amee Trivedi, Yihe Huang, Faisal Zaghloul, Sanidhya Kashyap, Margo Seltzer, Tim Harris, Steve Byan, Bill Bridge, Dave Dice

摘要:

本文提出了一个全面的分析之间的实现选择持久性内存上的事务运行时系统的性能权衡。我们比较了事务运行时的三种实现:撤消日志记录、重做日志记录和写时复制。我们还提出了一个内存分配器,插入到这些运行时。我们的基于微基准的评估侧重于理解各种因素之间的相互作用,这些因素导致三种运行时之间的性能差异-工作负载的读/写访问模式,持久化域的大小(数据有效持久化的存储层次结构的一部分),缓存位置和事务运行时簿记开销。没有一个运行时会成为明显的赢家。我们在我们使用transactional API开发的三个“真实世界”应用程序的更现实的设置中确认了我们的分析:(i)我们从头开始实现的键值存储,(ii)SQLite端口,以及(iii)持久化版本的memcached,一种流行的键值存储。这些发现不仅与我们的微基准测试分析一致,而且还提供了对影响应用程序性能的其他因素(例如多线程和同步的影响)的其他有趣的见解。

英文摘要:

This paper presents a comprehensive analysis of performance trade offs between implementation choices for transaction runtime systems on persistent memory. We compare three implementations of transaction runtimes: undo logging, redo logging, and copy-on-write. We also present a memory allocator that plugs into these runtimes. Our microbenchmark based evaluation focuses on understanding the interplay between various factors that contribute to performance differences between the three runtimes -- read/write access patterns of workloads, size of the persistence domain (portion of the memory hierarchy where the data is effectively persistent), cache locality, and transaction runtime bookkeeping overheads. No single runtime emerges as a clear winner. We confirm our analysis in more realistic settings of three "real world" applications we developed with our transactional API: (i) a key-value store we implemented from scratch, (ii) a SQLite port, and (iii) a persistified version of memcached, a popular key-value store. These findings are not only consistent with our microbenchmark analysis, but also provide additional interesting insights into other factors (e.g. effects of multithreading and synchronization) that affect application performance.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑