Arcadia: A Fast and Reliable Persistent Memory Replicated Log

06/24/2022
by   Shashank Gugnani, et al.
0

The performance properties of byte-addressable persistent memory (PMEM) have the potential to significantly improve system performance over a wide spectrum of applications. But persistent memory brings considerable new challenges to the programmer: only 8-byte write atomicity, out of order flush and availability limited by node failure. It's possible to work with the atomicity and ordering constraints of PMEM directly by carefully sequencing the order of store operations and inserting explicit flush and fence operations at each ordering point. But this is tedious and error-prone: too many flush operations defeat the performance benefits of PMEM, and even with generous use, it is difficult to prove that a given program is crash-consistent. Logging is a great abstraction to deal with these issues but prior work on PMEM logging has not successfully hidden the idiosyncrasies of PMEM. Moreover, shortcomings in the log interface and design have prevented attainment of full PMEM performance. We believe that a log design that hides the idiosyncrasies from programmers while delivering full performance is key to success. In this paper, we present the design and implementation of Arcadia, a generic replicated log on PMEM to address these problems. Arcadia handles atomicity, integrity, and replication of log records to reduce programmer burden. Our design has several novel aspects including concurrent log writes with in-order commit, atomicity and integrity primitives for local and remote PMEM writes, and a frequency-based log force policy for providing low overhead persistence with guaranteed bounded loss of uncommitted records. Our evaluation shows that Arcadia outperforms state-of-the-art PMEM logs, such as PMDK's libpmemlog, FLEX, and Query Fresh by several times while providing stronger log record durability guarantees. We expect Arcadia to become the leading off-the-shelf PMEM log design.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/01/2020

Crafty: Efficient, HTM-Compatible Persistent Transactions

Byte-addressable persistent memory, such as Intel/Micron 3D XPoint, is a...
research
05/13/2022

UniHeap: Managing Persistent Objects Across Managed Runtimes for Non-Volatile Memory

Byte-addressable, non-volatile memory (NVM) is emerging as a promising t...
research
09/20/2022

Replicating Persistent Memory Key-Value Stores with Efficient RDMA Abstraction

Combining persistent memory (PM) with RDMA is a promising approach to pe...
research
05/15/2023

Blizzard: Adding True Persistence to Main Memory Data Structures

Persistent memory (PMEM) devices present an opportunity to retain the fl...
research
11/19/2017

Cyclone: High Availability for Persistent Key Value Stores

Persistent key value stores are an important component of many distribut...
research
11/27/2017

DTranx: A SEDA-based Distributed and Transactional Key Value Store with Persistent Memory Log

Current distributed key value stores achieve scalability by trading off ...
research
10/18/2022

NearPM: A Near-Data Processing System for Storage-Class Applications

Persistent Memory (PM) technologies enable program recovery to a consist...

Please sign up or login with your details

Forgot password? Click here to reset