Memento: A Framework for Detectable Recoverability in Persistent Memory
Kyeongmin Cho, Seungmin Jeon, Azalea Raad, Jeehoon Kang
Abstract
Persistent memory (PM) is an emerging class of storage technology that combines the performance of DRAM with the durability of SSD, offering the best of both worlds. This had led to a surge of research on persistent objects in PM. Among such persistent objects, concurrent data structures (DSs) are particularly interesting thanks to their performance and scalability. One of the most widely used correctness criteria for persistent concurrent DSs is detectable recoverability , ensuring both thread safety (for correctness in non-crashing concurrent executions) and crash consistency (for correctness in crashing executions). However, the existing approaches to designing detectably recoverable concurrent DSs are either limited to simple algorithms or suffer from high runtime overheads. We present Memento: a general and high-performance programming framework for detectably recoverable concurrent DSs in PM. To ensure general applicability to various DSs, Memento supports primitive operations such as checkpoint and compare-and-swap and their composition with control constructs. To ensure high performance, Memento employs a timestamp-based recovery strategy that requires fewer writes and flushes to PM than the existing approaches. We formally prove that Memento ensures detectable recoverability in the presence of crashes. To showcase Memento, we implement a lock-free stack, list, queue, and hash table, and a combining queue that detectably recovers from random crashes in stress tests and performs comparably to existing hand-tuned persistent DSs with and without detectable recoverability.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 00c992c1-b8ff-41ff-bfbe-a4b2a123223eCited by top-tier papers2
- Cxlalloc: Safe and Efficient Memory Allocation for a CXL PodNewton Ni, Yan Sun, Zhiting Zhu, Emmett WitchelASPLOS 2026 · 2 citations
- Automated Insertion of Flushes and Fences for PersistencyYutong Guo, Weiyu Luo, Brian DemskyASE 2025 · 1 citation
Builds on23
- Lock-free Concurrent Level Hashing for Persistent MemoryZhangyu Chen, Yu Hua, Bo Ding, Pengfei ZuoUSENIX ATC 2020 · 98 citations
- Evaluating Persistent Memory Range IndexesLucas Lersch, Xiangpeng Hao, Ismail Oukid, Tianzheng Wang et al.VLDB 2020 · 97 citations
- LineFS: Efficient SmartNIC Offload of a Distributed File System with Pipeline ParallelismJongyul Kim, Insu Jang, Waleed Reda, Jaeseong Im et al.SOSP 2021 · 83 citations
- PACTree: A High Performance Persistent Range Index Using PAC GuidelinesWook-Hee Kim, Madhava Krishnan Ramanathan, Xinwei Fu, Sanidhya Kashyap et al.SOSP 2021 · 61 citations
- Persistency semantics of the Intel-x86 architectureAzalea Raad, John Wickerson, Gil Neiger, Viktor VafeiadisPOPL 2020 · 61 citations
Related papers
- Detectable recovery of lock-free data structuresHagit Attiya, Ohad Ben-Baruch, Panagiota Fatourou, Danny Hendler et al.PPoPP 2022 · 12 citations
- MOD: Minimally Ordered Durable Datastructures for Persistent MemorySwapnil Haria, Mark D. Hill, Michael M. SwiftASPLOS 2020 · 47 citations
- Efficiently detecting concurrency bugs in persistent memory programsZhangyu Chen, Yu Hua, Yongle Zhang, Luochangqi DingASPLOS 2022 · 11 citations
- Fast, flexible, and comprehensive bug detection for persistent memory programsBang Di, Jiawen Liu, Hao Chen, Dong LiASPLOS 2021 · 37 citations
- FFCCD: fence-free crash-consistent concurrent defragmentation for persistent memoryYuanchao Xu, Chencheng Ye, Yan Solihin, Xipeng ShenISCA 2022 · 9 citations
