Recent advances in persistent memory (PM) enable fast, byte-addressable main memory that maintains its state across power cycling events. To survive power outages and prevent inconsistent application state, current approaches introduce persistent logs and require expensive cache flushes. Thus, these solutions cause a performance penalty of up to 10x for write operations on PM. With respect to wear-out effects, and a significantly lower write performance compared to read operations, we identify this as a major flaw that impacts performance and lifetime of PM. In addition, most PM technologies are susceptible to soft-errors that cause corrupted data, which implies a high risk of a permanently inconsistent system state. In this paper, we present DNV Memory, a library for persistent memory management. For securing allocated data against power outages, multi-bit faults that bypass hardware protection and even usage violations, DNV Memory introduces reliable transactions. Additionally, it reduces writes to PM by offloading logging operations to volatile memory, while maintaining durability on demand by an early detection of upcoming power failures. We compare DNV Memory to pmemobj, a persistent object-store, and show that our system only causes a moderate overhead. In fact, our benchmark results indicate that DNV Memory is even faster than pmemobj for transactions of moderate size.
Type: Paper at ACM International Systems and Storage Conference (SYSTOR) 2018
Publication date: June 2018