Capri: Compiler and Architecture Support for Whole-System Persistence

Capri: Compiler and Architecture Support for Whole-System Persistence
复制标题

DOI:
10.1145/3502181.3531474
复制
发表时间:
2022-06
期刊:
Proceedings of the 31st International Symposium on High-Performance Parallel and Distributed Computing
影响因子:
--
通讯作者:
Jungi Jeong;Jianping Zeng;Changhee Jung
Jungi Jeong;Jianping Zeng;Changhee Jung
中科院分区:
其他
文献类型:
--
作者:
Jungi Jeong;Jianping Zeng;Changhee Jung

文献摘要

被引文献

相似文献

本文研究了全系统持久性(WSP),确保所有程序的无忧崩溃一致性,同时利用非易失性存储器技术的两个优点:高密度和内存持久性。尽管具有令人鼓舞的特点,但要使WSP成为现实,必须解决两个挑战。首先,程序必须能够从失败的地方恢复执行。第二,故障恢复必须以透明的方式提供给任何程序,包括操作系统,同时最大限度地减少持久性开销。为此,本文提出了卡普里,一个编译器和架构协同设计的方案,区域级全系统持久化。首先,卡普里编译器将程序划分为一系列区域,这些区域的边界用作恢复点。然后,卡普里架构通过基于硬件的原子更新为区域提供崩溃一致性。最后,通过架构和编译器之间的新颖的相互作用,卡普里提供了廉价的故障原子性,即,SPEC CPU 2017、STAMP和Splash3基准测试的性能开销分别为0%、12.4%和9.1%。
This paper investigates whole-system persistence (WSP) that ensures hassle-free crash consistency for all programs while simultaneously leveraging both advantages of the non-volatile memory technologies: high-density and in-memory persistence. Despite the promising characteristics, there are two challenges that must be addressed to make WSP a reality. First, programs must be able to resume the execution from where they had a failure. Second, failure recovery must be offered to any program including the OS in a transparent manner while minimizing persistence overheads. To this end, this paper presents Capri, a compiler and architecture co-designed scheme for region-level whole-system persistence. First, the Capri compiler partitions program into a series of regions whose boundaries serve as recovery points. Then, the Capri architecture provides the regions with crash consistency through hardware-based atomic updates. Finally, with the novel interplay between the architecture and the compiler, Capri provides failure atomicity on the cheap, i.e., with 0%, 12.4%, and 9.1% performance overheads for SPEC CPU2017, STAMP, and Splash3 benchmarks, respectively.