Arcadia: A Fast and Reliable Persistent Memory Replicated Log

Arcadia: A Fast and Reliable Persistent Memory Replicated Log
复制标题

DOI:
10.48550/arxiv.2206.12495
复制
发表时间:
2022-06
期刊:
ArXiv
影响因子:
--
通讯作者:
Shashank Gugnani;S. Guthridge;Frank B. Schmuck;O. Anderson;Deepavali Bhagwat;Xiaoyi Lu
Shashank Gugnani;S. Guthridge;Frank B. Schmuck;O. Anderson;Deepavali Bhagwat;Xiaoyi Lu
中科院分区:
其他
文献类型:
--
作者:
Shashank Gugnani;S. Guthridge;Frank B. Schmuck;O. Anderson;Deepavali Bhagwat;Xiaoyi Lu

文献摘要

相似文献

字节可寻址持久内存 (PMEM) 的延迟和带宽特性有可能显着提高各种应用程序的系统性能。但与此同时,与早期技术相比,PMEM 给程序员带来了相当多的新挑战。特别是,PMEM 仅提供 8 字节写入原子性,可以乱序刷新写入,并且其可用性始终受到节点故障的限制。通过仔细排序存储操作的顺序并在每个排序点插入显式刷新和栅栏操作,可以直接使用 PMEM 的原子性和排序约束。但这是乏味且容易出错的:太多的刷新操作破坏了 PMEM 的性能优势,而且即使大量使用,也很难证明给定的程序是崩溃一致的。日志记录是处理这些问题的一个很好的抽象,但之前有关 PMEM 日志记录的工作并未成功隐藏 PMEM 的特性。此外,日志接口和设计中的缺陷阻碍了 PMEM 充分发挥性能。我们相信,在提供完整性能的同时向程序员隐藏特性的日志设计是成功的关键。在本文中,我们介绍了 Arcadia 的设计和实现,这是一个 PMEM 上的通用复制日志来解决这些问题。 Arcadia 处理日志记录的原子性、完整性和复制,以减轻程序员的负担。我们的设计有几个新颖的方面,包括按顺序提交的并发日志写入、本地和远程 PMEM 写入的原子性和完整性原语,以及基于频率的日志强制策略,用于提供低开销持久性并保证未提交记录的有限丢失。我们的评估表明,Arcadia 的性能比最先进的 PMEM 日志(例如 PMDK 的 libpmemlog、FLEX 和 Query Fresh)好几倍
The latency and bandwidth properties of byte-addressable persistent memory (PMEM) have the potential to significantly improve system performance over a wide spectrum of applications. But at the same time, PMEM brings considerable new challenges for the programmer compared with earlier technologies. In particular, PMEM provides only 8-byte write atomicity, can flush writes out of order, and its availability is always limited by node failures. It’s possible to work with the atomicity and ordering constraints of PMEM directly by carefully sequencing the order of store operations and insert-ing explicit flush and fence operations at each ordering point. But this is tedious and error-prone: too many flush operations defeat the performance benefits of PMEM, and even with generous use, it is difficult to prove that a given program is crash-consistent. Logging is a great abstraction to deal with these issues but prior work on PMEM logging has not successfully hidden the idiosyncrasies of PMEM. Moreover, shortcomings in the log interface and design have prevented attainment of full PMEM performance. We believe that a log design that hides the idiosyncrasies from programmers while delivering full performance is key to success. In this paper, we present the design and implementation of Arcadia, a generic replicated log on PMEM to address these problems. Arcadia handles atomicity, integrity, and replication of log records to reduce programmer burden. Our design has several novel aspects including concurrent log writes with in-order commit, atomicity and integrity primitives for local and remote PMEM writes, and a frequency-based log force policy for providing low overhead persistence with guaranteed bounded loss of uncommitted records. Our evaluation shows that Arcadia outperforms state-of-the-art PMEM logs, such as PMDK’s libpmemlog, FLEX, and Query Fresh by several times