Understanding and optimizing persistent memory allocation

15Citations
Citations of this article
11Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The proliferation of fast, dense, byte-addressable nonvolatile memory suggests the possibility of keeping data in pointer-rich “in-memory” format across program runs and even crashes. For full generality, such data requires dynamic memory allocation. Toward this end, we introduce recoverability, a correctness criterion for persistent allocators, together with a nonblocking allocator, Ralloc, that satisfies this criterion. Ralloc is based on LRMalloc [8], with three key innovations. First, we persist just enough information during normal operation to permit reconstruction of the heap after a full-system crash. Our reconstruction mechanism performs garbage collection (GC) to identify and remedy any failure-induced memory leaks. Second, in support of GC, we introduce the notion of filter functions, which identify the locations of pointers within persistent blocks. Third, to allow persistent regions to be mapped at an arbitrary address, we employ the position-independent pointer representation of Chen et al. [4], both in data and in allocator metadata. Experiments show that Ralloc provides scalable performance competitive to that of both Makalu [2], the state-of-the-art lock-based persistent allocator, and the best transient allocators (e.g., JEMalloc [5]).

Cite

CITATION STYLE

APA

Cai, W., Wen, H., Beadle, H. A., Hedayati, M., & Scott, M. L. (2020). Understanding and optimizing persistent memory allocation. In Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP (pp. 421–422). Association for Computing Machinery. https://doi.org/10.1145/3332466.3374502

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free