Affiliation:
1. KAIST, South Korea
2. Imperial College London, UK
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.
Funder
Institute for Information & communications Technology Planning & Evaluation
UKRI Future Leaders Fellowship
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference78 articles.
1. Joy Arulraj , Justin Levandoski , Umar Farooq Minhas , and Per-Ake Larson . 2018 . Bztree: A High-Performance Latch-Free Range Index for Non-Volatile Memory . Proc. VLDB Endow., 11 , 5 (2018), jan, 553–565. issn: 2150 - 8097 Joy Arulraj, Justin Levandoski, Umar Farooq Minhas, and Per-Ake Larson. 2018. Bztree: A High-Performance Latch-Free Range Index for Non-Volatile Memory. Proc. VLDB Endow., 11, 5 (2018), jan, 553–565. issn:2150-8097
2. Hagit Attiya Ohad Ben-Baruch Panagiota Fatourou Danny Hendler and Eleftherios Kosmas. 2019. Tracking in Order to Recover: Detectable Recovery of Lock-Free Data Structures. https://doi.org/10.48550/ARXIV.1905.13600 10.48550/ARXIV.1905.13600
3. Hagit Attiya Ohad Ben-Baruch Panagiota Fatourou Danny Hendler and Eleftherios Kosmas. 2019. Tracking in Order to Recover: Detectable Recovery of Lock-Free Data Structures. https://doi.org/10.48550/ARXIV.1905.13600
4. Detectable recovery of lock-free data structures
5. Nesting-Safe Recoverable Linearizability