PMThreads: Persistent Memory Threads Harnessing Versioned Shadow Copies

Zhenwei Wu, Kai Lu, Andy Nisbet, Wenzhe Zhang, Mikel Luján

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

872 Downloads (Pure)


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.

This paper presents PMThreads, a novel user-space runtime that provides transparent failure-atomicity for lock-based parallel programs.
A shadow DRAM page is used to buffer application writes for efficient propagation to a dual-copy NVM persistent storage framework during a global quiescent state. In this state, the working NVM copy and the crash-consistent copy of each page are atomically updated, and their roles are switched. A global quiescent state is entered at timed intervals by intercepting pthread lock acquire and release operations to ensure that no thread holds a lock to persistent data.

Running on a dual-socket system with 20 cores, we show that PMThreads substantially outperforms the state-of-the-art Atlas, Mnemosyne and NVthreads systems for lock-based benchmarks (Phoenix, PARSEC benchmarks, and microbenchmark stress tests). Using Memcached, we also investigate the scalability of PMThreads and the effect of different time intervals for the quiescent state.
Original languageEnglish
Title of host publicationProceedings of the 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI ’20)
EditorsAlastair F. Donaldson, Emina Torlak
PublisherAssociation for Computing Machinery
Number of pages15
ISBN (Electronic)9781450376136
ISBN (Print)9781450376136
Publication statusPublished - 11 Jun 2020

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)


  • Memory persistence
  • Non-volatile memory
  • Parallel programs


Dive into the research topics of 'PMThreads: Persistent Memory Threads Harnessing Versioned Shadow Copies'. Together they form a unique fingerprint.

Cite this