Website Maintenance Alert
Due to scheduled maintenance, the USENIX website will not be available on Tuesday, December 17, from 10:00 am to 2:00 pm Pacific Daylight Time (UTC -7). We apologize for the inconvenience.
If you are trying to register for Enigma 2020, please complete your registration before or after this time period.
Good Old-Fashioned Persistent Memory
Given the excitement surrounding commercially available byte-addressable non-volatile memory (NVM), now is a good time to remind ourselves that it has long been possible to implement a software abstraction of persistent memory on conventional hardware—ordinary volatile DRAM and block-addressed storage devices. The corresponding "persistent memory style of programming" offers many of the same attractions as NVM programming but doesn't require special NVM hardware. This article illustrates persistent memory programming on conventional hardware with working C code for UNIX-like operating systems. The right crash consistency mechanism for persistent memory programming on conventional hardware is failure-atomic msync() (FAMS), and this article presents a concise new implementation of FAMS.