PMwCAS
PMwCAS is a lock-free software primitive for atomically and durably updating multiple machine words through persistent operation descriptors.
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
Limitations
- A successful volatile-mode test does not establish persistence or recovery after power loss. [2]
Citations
- Wang, Levandoski and Larson. Easy Lock-Free Indexing in Non-Volatile Memory. ICDE 2018, sections III-V.
- SFU PMwCAS, revision 3ed419f: backend definitions and EMU diagnostic.
- SFU PMwCAS, revision 3ed419f: unimplemented PMEM-without-PMDK callback branch.
Further reading
Sources & caveats
- Source review and a replayed CMake configuration-fragment probe; no full index build, runtime experiment or power-cut test.