pmwcas · research · also Persistent multi-word compare-and-swap

PMwCAS

PMwCAS is a lock-free software primitive for atomically and durably updating multiple machine words through persistent operation descriptors.

Related Observatory article: PMwCAS on hesela.com

The durable descriptor decision determines whether interrupted updates roll forward or back. Readers participate in the protocol; allocator recovery precedes descriptor recovery, and allocation ownership must remain recoverable. Ordinary pointer stores bypass that contract. [1]

In the inspected SFU fork, EMU selects PMEM and PMEMEMU while also printing a PMDK diagnostic. Accepted configuration is not proof of a successful full build. [2] [3]

Relations

related
BzTree, Persistent memory, Crash consistency, Persistence ordering, Durable linearizability

Limitations

  • A successful volatile-mode test does not establish persistence or recovery after power loss. [2]

Citations

  1. Wang, Levandoski and Larson. Easy Lock-Free Indexing in Non-Volatile Memory. ICDE 2018, sections III-V. (accessed 2026-11-13)
  2. SFU PMwCAS, revision 3ed419f: backend definitions and EMU diagnostic. (accessed 2026-11-13)
  3. SFU PMwCAS, revision 3ed419f: unimplemented PMEM-without-PMDK callback branch. (accessed 2026-11-13)

Further reading

  1. Hesela: BzTree recovery and reproducible backend-selection evidence. (accessed 2026-11-13)
Sources & caveats
  • Source review and a replayed CMake configuration-fragment probe; no full index build, runtime experiment or power-cut test.

JSON: /data/terms/pmwcas.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. PMwCAS. Hesela. 2026-11-13. https://hesela.dev/terms/pmwcas/