PMThreads: persistent memory threads harnessing versioned shadow copies
Zhenwei Wu, Kai Lü, A. Nisbet, Wenzhe Zhang, Mikel Luján · 2020
Byte-addressable non-volatile memory (NVM) makes it possible to perform fast in-memory accesses to persistent data using standard load/store processor instructions. Some approaches for NVM are based on durable memory transactions and provide a persistent programming paradigm. However, they cannot be applied to existing multi-threaded applications without extensive source code modifications. Durable transactions typically rely on logging to enforce failure-atomic commits that include additional writes to NVM and considerable ordering overheads.