FliT: A Library for Simple and Efficient Persistent Algorithms
Yuanhao Wei, Naama Ben-David, Michal Friedman, Guy E. Blelloch, Erez, Petrank

TL;DR
FliT is a C++ library that simplifies the development of efficient persistent algorithms on NVRAM by minimizing flush instructions and ensuring durability with minimal code changes.
Contribution
The paper introduces FliT, a novel library that enables easy and efficient implementation of persistent data structures using a new tracking algorithm and a formal persistent programming interface.
Findings
FliT improves throughput by at least 2.1x over naive implementations.
The library effectively ensures durability with minimal code modifications.
FliT's default mode provides good performance without extra optimizations.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Quantum Computing Algorithms and Architecture · Advanced Data Storage Technologies
