FliT: a library for simple and efficient persistent algorithms
Yuanhao Wei, Naama Ben-David, Michal Friedman, Guy E. Blelloch, Erez Petrank
Abstract
Non-volatile random access memory (NVRAM) offers byte-addressable persistence at speeds comparable to DRAM. However, with caches remaining volatile, automatic cache evictions can reorder updates to memory, potentially leaving persistent memory in an inconsistent state upon a system crash. Flush and fence instructions can be used to force ordering among updates, but are expensive. This has motivated significant work studying how to write correct and efficient persistent programs for NVRAM.
In this paper, we present FliT, a C++ library that facilitates writing efficient persistent code. Using the library's default mode makes any linearizable data structure durable with minimal changes to the code. FliT avoids many redundant flush instructions by using a novel algorithm to track dirty cache lines. The FliT library also allows for extra optimizations, but achieves good performance even in its default setting.
To describe the FliT library's capabilities and guarantees, we define a persistent programming interface, called the P-V Interface, which FliT implements. The P-V Interface captures the expected behavior of code in which some instructions' effects are persisted and some are not. We show that the interface captures the desired semantics of many practical algorithms in the literature.
We apply the FliT library to four different persistent data structures, and show that across several workloads, persistence implementations, and data structure sizes, the FliT library always improves operation throughput, by at least 2.1× over a naive implementation in all but one workload.
1 While Intel announced the new eADR technology [21] that promises to persist cache contents as well, this would require powerful and expensive batteries to implement. Thus, it is unlikely that volatile caches will cease being a reality in the near future [31].
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 e4d42268-9c05-4f37-a171-3c2d7ce01494Cited by top-tier papers8
- Prism: Optimizing Key-Value Store for Modern Heterogeneous Storage DevicesYongju Song, Wook-Hee Kim, Sumit Kumar Monga, Changwoo Min et al.ASPLOS 2023 · 28 citations
- The Path to Durable LinearizabilityEmanuele D'Osualdo, Azalea Raad, Viktor VafeiadisPOPL 2023 · 6 citations
- Mangosteen: Fast Transparent Durability for Linearizable Applications using NVMSergey Egorov, Gregory V. Chockler, Brijesh Dongol, Dan O'Keeffe et al.USENIX ATC 2024 · 5 citations
- Memento: A Framework for Detectable Recoverability in Persistent MemoryKyeongmin Cho, Seungmin Jeon, Azalea Raad, Jeehoon KangPLDI 2023 · 4 citations
- A Programming Model for Disaggregated Memory over CXLGal Assa, Moritz Lumme, Lucas Bürgi, Michal Friedman et al.ASPLOS 2026 · 4 citations
Builds on2
- Persistency semantics of the Intel-x86 architectureAzalea Raad, John Wickerson, Gil Neiger, Viktor VafeiadisPOPL 2020 · 61 citations
- NVTraverse: in NVRAM data structures, the destination is more important than the journeyMichal Friedman, Naama Ben-David, Yuanhao Wei, Guy E. Blelloch et al.PLDI 2020 · 52 citations
Related papers
- Pronto: Easy and Fast Persistence for Volatile Data StructuresAmir Saman Memaripour, Joseph Izraelevitz, Steven SwansonASPLOS 2020 · 55 citations
- BBB: Simplifying Persistent Programming using Battery-Backed BuffersMohammad A. Alshboul, Prakash Ramrakhyani, William Wang, James Tuck et al.HPCA 2021 · 34 citations
- Supporting Legacy Libraries on Non-Volatile Memory: A User-Transparent ApproachChencheng Ye, Yuanchao Xu, Xipeng Shen, Xiaofei Liao et al.ISCA 2021 · 9 citations
- Falcon: Fast OLTP Engine for Persistent Cache and Non-Volatile MemoryZhicheng Ji, Kang Chen, Leping Wang, Mingxing Zhang et al.SOSP 2023 · 10 citations
- Automated Insertion of Flushes and Fences for PersistencyYutong Guo, Weiyu Luo, Brian DemskyASE 2025 · 1 citation
