Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming 2020
DOI: 10.1145/3332466.3374502
|View full text |Cite
|
Sign up to set email alerts
|

Understanding and optimizing persistent memory allocation

Abstract: The proliferation of fast, dense, byte-addressable nonvolatile memory suggests that data might be kept in pointer-rich "in-memory" format across program runs and even process and system crashes. For full generality, such data requires dynamic memory allocation, and while the allocator could in principle be "rolled into" each data structure, it is desirable to make it a separate abstraction.Toward this end, we introduce recoverability, a correctness criterion for persistent allocators, together with a nonblocki… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
19
0

Year Published

2020
2020
2023
2023

Publication Types

Select...
2
2
1

Relationship

0
5

Authors

Journals

citations
Cited by 8 publications
(20 citation statements)
references
References 27 publications
1
19
0
Order By: Relevance
“…For allocating small objects, slabs are widely used in the existing allocators including volatile memory allocators (e.g., jemalloc-5.2.1 [17] and tcmalloc-2.9.1 [18]) and persistent memory allocators (e.g., Makalu [3], Ralloc [4], nvm_malloc [37], and PMDK-1.11 [11]). Slabs are segregated based on size classes.…”
Section: Fragmentation Caused By Static Slab Segregationmentioning
confidence: 99%
See 2 more Smart Citations
“…For allocating small objects, slabs are widely used in the existing allocators including volatile memory allocators (e.g., jemalloc-5.2.1 [17] and tcmalloc-2.9.1 [18]) and persistent memory allocators (e.g., Makalu [3], Ralloc [4], nvm_malloc [37], and PMDK-1.11 [11]). Slabs are segregated based on size classes.…”
Section: Fragmentation Caused By Static Slab Segregationmentioning
confidence: 99%
“…We use an offset-based pointer representation to allow persistent structures to be mapped at different virtual addresses after failure recovery. The same technique has been used in previous projects [4,6,9]. The nvalloc_free_from() returns a block or an extent specified by ๐‘Ž๐‘‘๐‘‘๐‘Ÿ๐‘’๐‘ ๐‘  to the persistent memory heap.…”
Section: Programming Modelmentioning
confidence: 99%
See 1 more Smart Citation
“…NVM-aware allocators need to ensure the atomicity and durability of allocations and reclamation. In the wake of a crash, the allocator can bring its metadata to a state in which all and only the in-use blocks are allocated [22] .…”
Section: Recovery Principlesmentioning
confidence: 99%
“…NVM-aware allocator: Bhandari et al [12] and Cai et al [22] proposed fine-grained log-freedom allocators that provide a malloc/free interface similar to the counterparts for DRAM. These allocators use a postcrash GC to reclaim leaked memory.…”
Section: Related Workmentioning
confidence: 99%