Persistent Memory Transactions

03/09/2018
by   Virendra Marathe, et al.
0

This paper presents a comprehensive analysis of performance trade offs between implementation choices for transaction runtime systems on persistent memory. We compare three implementations of transaction runtimes: undo logging, redo logging, and copy-on-write. We also present a memory allocator that plugs into these runtimes. Our microbenchmark based evaluation focuses on understanding the interplay between various factors that contribute to performance differences between the three runtimes -- read/write access patterns of workloads, size of the persistence domain (portion of the memory hierarchy where the data is effectively persistent), cache locality, and transaction runtime bookkeeping overheads. No single runtime emerges as a clear winner. We confirm our analysis in more realistic settings of three "real world" applications we developed with our transactional API: (i) a key-value store we implemented from scratch, (ii) a SQLite port, and (iii) a persistified version of memcached, a popular key-value store. These findings are not only consistent with our microbenchmark analysis, but also provide additional interesting insights into other factors (e.g. effects of multithreading and synchronization) that affect application performance.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/10/2017

Improving the Performance and Endurance of Persistent Memory with Loose-Ordering Consistency

Persistent memory provides high-performance data persistence at main mem...
research
12/26/2020

Persistence and Synchronization: Friends or Foes?

Emerging non-volatile memory (NVM) technologies promise memory speed byt...
research
10/31/2022

Enabling Atomic Durability for Persistent Memory with Transiently Persistent CPU Cache

Persistent memory (pmem) products bring the persistence domain up to the...
research
01/03/2019

A Secure and Persistent Memory System for Non-volatile Memory

In the non-volatile memory, ensuring the security and correctness of per...
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
09/24/2020

An Analysis of Concurrency Control Protocols for In-Memory Databases with CCBench (Extended Version)

This paper presents yet another concurrency control analysis platform, C...
research
05/14/2021

NVCache: A Plug-and-Play NVMM-based I/O Booster for Legacy Systems

This paper introduces NVCache, an approach that uses a non-volatile main...

Please sign up or login with your details

Forgot password? Click here to reset