PPoPP 2022
Sat 2 - Wed 6 April 2022
Tue 5 Apr 2022 12:50 - 13:05 - Session 6 Chair(s): Stefan K. Muller

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\times$ over a naive implementation in all but one workload.

#### Tue 5 AprDisplayed time zone: Eastern Time (US & Canada) change

 12:50 - 13:35 Session 6Main Conference Chair(s): Stefan K. Muller Illinois Institute of Technology 12:5015mTalk FliT: A Library for Simple and Efficient Persistent AlgorithmsMain ConferenceYuanhao Wei Carnegie Mellon University, USA, Naama Ben-David VMware, Michal Friedman Technion, Israel, Guy E. Blelloch Carnegie Mellon University, USA, Erez Petrank Technion 13:0515mTalk The Performance Power of Software Combining in PersistenceMain ConferencePanagiota Fatourou FORTH ICS and University of Crete, Greece, Nikolaos Kallimanis Institute of Computer Science, Foundation for Research & Technology - Hellas, Eleftherios Kosmas Department of Computer Science, University of Crete, Greece 13:2015mTalk Understanding and Detecting Deep Memory Persistency Bugs in NVM Programs with DeepMCMain ConferenceBenjamin Reidys UIUC, Jian Huang University of Illinois at Urbana-Champaign