Don't Persist All : Efficient Persistent Data Structures

05/29/2019
by   Pratyush Mahapatra, et al.
0

Data structures used in software development have inbuilt redundancy to improve software reliability and to speed up performance. Examples include a Doubly Linked List which allows a faster deletion due to the presence of the previous pointer. With the introduction of Persistent Memory, storing the redundant data fields into persistent memory adds a significant write overhead, and reduces performance. In this work, we focus on three data structures - Doubly Linked List, B+Tree and Hashmap, and showcase alternate partly persistent implementations where we only store a limited set of data fields to persistent memory. After a crash/restart, we use the persistent data fields to recreate the data structures along with the redundant data fields. We compare our implementation with the base implementation and show that we achieve speedups around 5-20 flush-dominated data structure.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/03/2022

Technical Report: Bundling Linked Data Structures for Linearizable Range Queries

We present bundled references, a new building block to provide lineariza...
research
08/09/2021

FliT: A Library for Simple and Efficient Persistent Algorithms

Non-volatile random access memory (NVRAM) offers byte-addressable persis...
research
06/08/2020

Toward a Better Understanding and Evaluation of Tree Structures on Flash SSDs

Solid-state drives (SSDs) are extensively used to deploy persistent data...
research
04/15/2004

The Persistent Buffer Tree : An I/O-efficient Index for Temporal Data

In a variety of applications, we need to keep track of the development o...
research
09/30/2020

Persistent Data Retention Models

Non-Volatile Memory devices may soon be a part of main memory, and progr...
research
09/29/2020

Montage: A General System for Buffered Durably Linearizable Data Structures

The recent emergence of fast, dense, nonvolatile main memory suggests th...
research
09/25/2018

An Efficient Framework for Implementing Persist Data Structures on Remote NVM

The byte-addressable Non-Volatile Memory (NVM) is a promising technology...

Please sign up or login with your details

Forgot password? Click here to reset