Zhuque: Failure is Not an Option, it's an Exception

Zhuque: Failure is Not an Option, it's an Exception
复制标题

DOI:
--
复制
发表时间:
2023
期刊:
--
影响因子:
--
通讯作者:
G. Hodgkins;Yi Xu;S. Swanson;Joseph Izraelevitz
G. Hodgkins;Yi Xu;S. Swanson;Joseph Izraelevitz
中科院分区:
其他
文献类型:
--
作者:
G. Hodgkins;Yi Xu;S. Swanson;Joseph Izraelevitz

文献摘要

相似文献

持久存储器(PMEM)允许以字节粒度直接访问快速存储。以前,由持久内存支持的处理器缓存不是持久的,这使得持久应用程序的设计变得复杂,并降低了它们的性能。新一代具有故障时刷新语义的系统有效地提供了持久缓存,从而提供了更简单、更快速的PMEM编程模型的潜力。这项工作提出了全过程持久化(WPP),一个新的编程模型的系统与持久缓存。在WPP模型中,所有进程状态都是持久的。在电源故障后重新启动时,此状态会重新加载,并在应用程序定义的中断处理程序中恢复执行。我们还描述了Zhuque运行时,它透明地提供了WPP的C绑定在用户空间中的系统调用。在朱雀上运行应用程序几乎不需要程序员的努力。我们的测量结果表明,Zhuque的性能优于最先进的PMEM库,在所有基准测试中的平均加速比分别为PMDK的5.24倍、Mnemosyne的3.01倍、Atlas的5.43倍和Clobber-NVM的4.11倍。更重要的是,与现有系统不同,Zhuque对应用程序如何实现并发没有任何限制,允许我们在Zhuque上运行更新版本的Memcached,并获得超过现有最快持久化实现的7.5倍的吞吐量。
Persistent memory (PMEM) allows direct access to fast storage at byte granularity. Previously, processor caches backed by persistent memory were not persistent, complicating the design of persistent applications and reducing their performance. A new generation of systems with flush-on-fail semantics effectively offer persistent caches, offering the potential for much simpler, faster PMEM programming models. This work proposes Whole Process Persistence (WPP), a new programming model for systems with persistent caches. In the WPP model, all process state is made persistent. On restart after power failure, this state is reloaded and execution resumes in an application-defined interrupt handler. We also describe the Zhuque runtime, which transparently provides WPP by interposing on the C bindings for system calls in userspace. It requires little or no programmer effort to run applications on Zhuque. Our measurements show that Zhuque outperforms state of the art PMEM libraries, demonstrating mean speedups across all benchmarks of 5.24 × over PMDK, 3.01 × over Mnemosyne, 5.43 × over Atlas, and 4.11 × over Clobber-NVM. More important, unlike existing systems, Zhuque places no restrictions on how applications implement concurrency, allowing us to run a newer version of Memcached on Zhuque and gain more than 7.5 × throughput over the fastest existing persistent implementations.