Persistent Data Retention Models

09/30/2020
by   Tiancong Wang, et al.
0

Non-Volatile Memory devices may soon be a part of main memory, and programming models that give programmers direct access to persistent memory through loads and stores are sought to maximize the performance benefits of these new devices. Direct access introduces new challenges. In this work, we identify an important aspect of programming for persistent memory: the persistent data retention model. A Persistent Data Retention Model describes what happens to persistent data when code that uses it is modified. We identify two models present in prior work but not described as such, the Reset and Manual Model, and we propose a new one called the Automatic Model. The Reset model discards all persistent data when a program changes leading to performance overheads and write amplification. In contrast, if data is to be retained, the Manual Model relies on the programmer to implement code that upgrades data from one version of the program to the next. This reduces overheads but places a larger burden on the programmer. We propose the Automatic Model to assist a programmer by automating some or all of the conversion. We describe one such automatic approach, Lazily Extendible Data Structures, that uses language extensions and compiler support to reduce the effort and complexity associated with updating persistent data. We evaluate our PDRMs in the context of the Persistent Memory Development Kit (PMDK) using kernels and the TPC-C application. Manual Model shows an overhead of 2.90 average, depending on the workload. LEDS reduces the number of writes by 26.36 compared to Manual Model. Furthermore, LEDS significantly reduces the programming complexity by relying on the compiler to migrate persistent data.

READ FULL TEXT
research
04/07/2022

Persistent Memory Objects: Fast and Easy Crash Consistency for Persistent Memory

DIMM-compatible persistent memory unites memory and storage. Prior works...
research
05/29/2019

Don't Persist All : Efficient Persistent Data Structures

Data structures used in software development have inbuilt redundancy to ...
research
02/05/2020

Observations on Porting In-memory KV stores to Persistent Memory

Systems that require high-throughput and fault tolerance, such as key-va...
research
01/07/2019

Building Atomic, Crash-Consistent Data Stores with Disaggregated Persistent Memory

Byte-addressable persistent memories (PM) has finally made their way int...
research
04/22/2019

Pangolin: A Fault-Tolerant Persistent Memory Programming Library

Non-volatile main memory (NVMM) allows programmers to build complex, per...
research
09/02/2022

Programming with Context-Sensitive Holes using Dependency-Aware Tuning

Developing efficient and maintainable software systems is both hard and ...
research
09/23/2015

A shared memory implementation of pipelined Parareal

The paper introduces an OpenMP implementation of pipelined Parareal and ...

Please sign up or login with your details

Forgot password? Click here to reset