NVTraverse: in NVRAM data structures, the destination is more important than the journey
Michal Friedman, Naama Ben-David, Yuanhao Wei, Guy E. Blelloch, Erez Petrank
Abstract
The recent availability of fast, dense, byte-addressable nonvolatile memory has led to increasing interest in the problem of designing and specifying durable data structures that can recover from system crashes. However, designing durable concurrent data structures that are efficient and also satisfy a correctness criterion has proven to be very difficult, leading many algorithms to be inefficient or incorrect in a concurrent setting. In this paper, we present a general transformation that takes a lock-free data structure from a general class called traversal data structure (that we formally define) and automatically transforms it into an implementation of the data structure for the NVRAM setting that is provably durably linearizable and highly efficient. The transformation hinges on the observation that many data structure operations begin with a traversal phase that does not need to be persisted, and thus we only begin persisting when the traversal reaches its destination. We demonstrate the transformation's efficiency through extensive measurements on a system with Intel's recently released Optane DC persistent memory, showing that it can outperform competitors on many workloads.
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.
Cited by top-tier papers22
- Mirror: making lock-free data structures persistentMichal Friedman, Erez Petrank, Pedro RamalhetePLDI 2021 · 34 citations
- TIPS: Making Volatile Index Structures Persistent with DRAM-NVMM TieringMadhava Krishnan Ramanathan, Wook-Hee Kim, Xinwei Fu, Sumit Kumar Monga et al.USENIX ATC 2021 · 32 citations
- Concurrent deferred reference counting with constant-time overheadDaniel Anderson, Guy E. Blelloch, Yuanhao WeiPLDI 2021 · 26 citations
- Taming x86-TSO persistencyArtem Khyzha, Ori LahavPOPL 2021 · 26 citations
- FliT: a library for simple and efficient persistent algorithmsYuanhao Wei, Naama Ben-David, Michal Friedman, Guy E. Blelloch et al.PPoPP 2022 · 19 citations
Builds on1
Related papers
- Lock-free Concurrent Level Hashing for Persistent MemoryZhangyu Chen, Yu Hua, Bo Ding, Pengfei ZuoUSENIX ATC 2020 · 98 citations
- DURINN: Adversarial Memory and Thread Interleaving for Detecting Durable Linearizability BugsXinwei Fu, Dongyoon Lee, Changwoo MinOSDI 2022 · 10 citations
- Detectable recovery of lock-free data structuresHagit Attiya, Ohad Ben-Baruch, Panagiota Fatourou, Danny Hendler et al.PPoPP 2022 · 12 citations
- Memento: A Framework for Detectable Recoverability in Persistent MemoryKyeongmin Cho, Seungmin Jeon, Azalea Raad, Jeehoon KangPLDI 2023 · 4 citations
- The Path to Durable LinearizabilityEmanuele D'Osualdo, Azalea Raad, Viktor VafeiadisPOPL 2023 · 6 citations
