C++ and Persistent Memory Technologies, Like Intel's 3D-XPoint
summary
An open source C++ API and library for byte-addressable persistent memory (works with Intel-style DIMMs and maps via DAX/ODAX) that implements undo-log transactions (function, automatic and manual styles), transactional alloc/free, and a p<T> wrapper that snapshots primitive writes. Persistent pointers store pool-relative offsets (16 bytes) so mapped addresses can differ on reload. Standard containers work via a persistent allocator, but there is no polymorphic object support, no multiprocess safety yet, and cacheline flushes (CLFLUSH/CLFLUSHOPT/CLWB) are required for durability.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:05Persistent memory basics
- 4:48DAX and direct access
- 12:20Persistent memory challenges
- 16:59Trivial queue example
- 21:58Transaction types overview
- 29:54Lander transactions
- 31:20Resides in persistent memory
- 33:31Persistent pointer design
- 40:29Polymorphic objects limitations
- 43:58Persistent locks and logs
- 46:35Standard library containers
- 50:14Known issues and limitations
- 53:34Q&A session
related talks
43mPromise and Pitfalls of Persistent Memory
17mPreview: Persistent Memory
35mDeveloping Software for Persistent Memory
17mBreakthrough Data-Centric Computing with a New Memory Tier
16mAerospike + Intel® persistent memory
35mDeveloping Software for Persistent Memory
19mPangolin: A Fault-Tolerant Persistent Memory Programming Library
52mByte-Addressable Persistent Memory and DBMS
