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

05/13/2022
by   Daixuan Li, et al.
0

Byte-addressable, non-volatile memory (NVM) is emerging as a promising technology. To facilitate its wide adoption, employing NVM in managed runtimes like JVM has proven to be an effective approach (i.e., managed NVM). However, such an approach is runtime specific, which lacks a generic abstraction across different managed languages. Similar to the well-known filesystem primitives that allow diverse programs to access same files via the block I/O interface, managed NVM deserves the same system-wide property for persistent objects across managed runtimes with low overhead. In this paper, we present UniHeap, a new NVM framework for managing persistent objects. It proposes a unified persistent object model that supports various managed languages, and manages NVM within a shared heap that enables cross-language persistent object sharing. UniHeap reduces the object persistence overhead by managing the shared heap in a log-structured manner and coalescing object updates during the garbage collection. We implement UniHeap as a generic framework and extend it to different managed runtimes that include HotSpot JVM, cPython, and JavaScript engine SpiderMonkey. We evaluate UniHeap with a variety of applications, such as key-value store and transactional database. Our evaluation shows that UniHeap significantly outperforms state-of-the-art object sharing approaches, while introducing negligible overhead to the managed runtimes.

READ FULL TEXT

page 1

page 2

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/22/2020

CAPre: Code-Analysis based Prefetching for Persistent Object Stores

Data prefetching aims to improve access times to data storage systems by...
research
06/24/2022

Arcadia: A Fast and Reliable Persistent Memory Replicated Log

The performance properties of byte-addressable persistent memory (PMEM) ...
research
06/24/2021

Userfault Objects: Transparent Programmable Memory

The Userfault Object (UFO) framework explores avenues of cooperating wit...
research
07/18/2017

Sciunits: Reusable Research Objects

Science is conducted collaboratively, often requiring knowledge sharing ...
research
08/18/2015

Cold Object Identification in the Java Virtual Machine

Many Java applications instantiate objects within the Java heap that are...
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 ...

Please sign up or login with your details

Forgot password? Click here to reset