Popis: |
With the advent of persistent memory (PM), how to make use of systems that deploy PM is catching interest. Currently known persistent programming models require programs to be rewritten with persistence related primitives 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 paper, we propose µSnap, an operating system support that is based on checkpointing that allows legacy applications to be executed as-is in a persistent memory environment without compromising consistency. We measure and quantify the effect of µSnap for a wide range of applications and show that the overhead is small compared to plain execution. 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. We implement a prototype of µSnap in the Linux kernel version 4.3.3. For the PARSEC and file system benchmarks that we considered, we find that µSnap overhead for particular applications can be less than 2% compared to applications run without any notion of persistency when checkpointing interval is set to 30 seconds. |