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
期刊:
影响因子:
--
通讯作者:
Jungi Jeong;Jianping Zeng;Changhee Jung
中科院分区:
文献类型:
--
作者:
Jungi Jeong;Jianping Zeng;Changhee Jung
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.