UniHeap
- 14 June 2021
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM) in Proceedings of the 14th ACM International Conference on Systems and Storage
Abstract
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, it lacks a generic abstraction across different managed languages. Similar to the well-known filesystem primitives that allow diverse programs to access the same file 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 out-performs state-of-the-art object sharing approaches, while introducing negligible overhead to the managed runtimes.Keywords
Funding Information
- NSF (National Science Foundation) (CNS 1850317,CCF 1919044, CNS 1763658)
This publication has 32 references indexed in Scilit:
- NVthreadsPublished by Association for Computing Machinery (ACM) ,2017
- An Analysis of Persistent Memory Use with WHISPERPublished by Association for Computing Machinery (ACM) ,2017
- ATOM: Atomic Durability in Non-volatile Memory through Hardware LoggingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2017
- NVL-CPublished by Association for Computing Machinery (ACM) ,2016
- Failure-Atomic Persistent Memory Updates via JUSTDO LoggingPublished by Association for Computing Machinery (ACM) ,2016
- Atomic persistence for SCM with a non-intrusive backend controllerPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2016
- High-performance cross-language interoperability in a multi-language runtimePublished by Association for Computing Machinery (ACM) ,2015
- Understanding issue correlationsPublished by Association for Computing Machinery (ACM) ,2015
- AtlasPublished by Association for Computing Machinery (ACM) ,2014
- XMemPublished by Association for Computing Machinery (ACM) ,2008