Clobber-NVM: Log less, re-execute more

21Citations
Citations of this article
26Readers
Mendeley users who have this article in their library.

Abstract

Non-volatile memory allows direct access to persistent storage via a load/store interface. However, because the cache is volatile, cached updates to persistent state will be dropped after a power loss. Failure-atomicity NVM libraries provide the means to apply sets of writes to persistent state atomically. Unfortunately, most of these libraries impose significant overhead. This work proposes Clobber-NVM, a failure-atomicity library that ensures data consistency by reexecution. Clobber-NVM's novel logging strategy, clobber logging, records only those transaction inputs that are overwritten during transaction execution. Then, after a failure, it recovers to a consistent state by restoring overwritten inputs and reexecuting any interrupted transactions. Clobber-NVM utilizes a clobber logging compiler pass for identifying the minimal set of writes that need to be logged. Based on our experiments, classical undo logging logs up to 42.6X more bytes than Clobber-NVM, and requires 2.4X to 4.7X more expensive ordering instructions (e.g., clflush and sfence). Less logging leads to better performance: Relative to prior art, Clobber-NVM provides up to 2.5X performance improvement over Mnemosyne, 2.6X over Intel's PMDK, and up to 8.1X over HP's Atlas.

Cite

CITATION STYLE

APA

Xu, Y., Izraelevitz, J., & Swanson, S. (2021). Clobber-NVM: Log less, re-execute more. In International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS (pp. 346–359). Association for Computing Machinery. https://doi.org/10.1145/3445814.3446730

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free