Overview
Interest is growing in persistent memory technologies. In addition to currently available products like nonvolatile dual in-line memory module (NVDIMM-N) and dynamic random-access memory (DRAM) with NAND flash-based storage, there are new technologies emerging, including 3D XPoint™ memory NVDIMMs from Intel.These new hardware types offer interesting new possibilities to developers, while at the same time introducing programming challenges.
Persistent memory programming is fundamentally different from traditional programming to volatile memory due to its requirement to ensure data retention after program completion, an application or system crash, or a power failure. Intel developed and open-sourced a set of libraries called the Persistent Memory Developer Kit (PMDK) to make it easier to convert an application to use persistent memory. This paper describes the C++ API for the libpmemobj library of the PMDK, along with other proposed changes to the C++ standard.
Download Technical Article (PDF)
Resources
Persistent Memory Programming on Intel Developer Zone
pmem.io - for programming with the Persistent Memory Developer Kit (PMDK)
Github site for persistent memory programming
Google Group for persistent memory programming
CppCon 2017: Tomasz Kapela's session C++ and Persistent Memory Technologies, Like Intel's 3D-XPoint