The advent of persistent memory (PM) into our everyday computing environment is now imminent. New programming models and algorithms based on these models are being developed for such systems. However, current models require programs to be rewritten with persistence related primitives such as clflush and clwb or at least recompiled so that persistent mechanisms can be automatically inserted. This is a burden to program developers. Furthermore, executing legacy programs as-is can lead to application and system inconsistencies as unexpected faults occur. In this article, we propose μSnap, an operating system support that is based on checkpointing that allows legacy applications to be executed as-is without compromising consistency in systems that deploy PM. We implement a prototype of μSnap in the Linux kernel version 4.3.3, and measure and quantify the effect of μSnap for a wide range of applications. We find that μSnap incurs overhead for application execution compared to applications run without any notion of persistency, but that the overhead can be controlled to be minimal by appropriately setting the checkpointing interval. We argue that the benefit for paying this small cost can be tremendous in the sense that one can transparently guarantee the consistency of all legacy software written under the traditional programming model.
CITATION STYLE
Kim, J. H., Moon, Y. J., Song, H., Park, J. H., & Noh, S. H. (2020). On providing os support to allow transparent use of traditional programming models for persistent memory. ACM Journal on Emerging Technologies in Computing Systems, 16(3). https://doi.org/10.1145/3388637
Mendeley helps you to discover research relevant for your work.