Memento: A Framework for Detectable Recoverability in Persistent Memory
summary
Memento is a programming framework that proves and enforces detectable recoverability for persistent memory by using a timestamp-based recovery strategy plus primitives like checkpoint and a detectable cast. It requires fewer writes and flushes than prior approaches, formally guarantees replay determinism, and ships implementations of lock-free stack, list, queue, hash table and combining queue that survive random crashes in stress tests. Evaluation on Intel Optane shows comparable throughput to hand-tuned persistent DSs with minimal space overhead.
AI-written summary · about
chapters (15)
- 0:00Memento framework intro
- 1:05Crash consistency in PM
- 2:32Detectability as correctness
- 3:15Design goals for data structures
- 3:56Replay-based recovery
- 5:00Type system for replay
- 5:20Lure zero checkpoint
- 7:51Lure one non-deterministic loads
- 9:14Lure two DCAS
- 10:39Lure three loop timestamps
- 12:22Composing detectable functions
- 13:04Evaluating detectable cast
- 13:47Performance of linked list
- 14:08Framework details and open source
- 14:32Q&A
related talks
43mPromise and Pitfalls of Persistent Memory
35mDeveloping Software for Persistent Memory
19mPangolin: A Fault-Tolerant Persistent Memory Programming Library
17mPreview: Persistent Memory
35mDeveloping Software for Persistent Memory
24mgo-pmem: Native Support for Programming Persistent Memory in Go
01h 08mC++ and Persistent Memory Technologies, Like Intel's 3D-XPoint
22mMangosteen: Fast Transparent Durability for Linearizable Applications using NVM
