Abstract:
Byte-addressable persistent memory (PM) exhibits salient features of low latency and high capacity. PM can be memory-mapped to the virtual address space of a process and ...Show MoreMetadata
Abstract:
Byte-addressable persistent memory (PM) exhibits salient features of low latency and high capacity. PM can be memory-mapped to the virtual address space of a process and be directly accessed via load and store instructions. Persistent memory allocator is a fundamental building block in PM-oriented programs, which provides dynamic memory allocation/deallocation primitives for developers to efficiently and safely leverage the PM. Different from DRAM allocators, a PM allocator needs to guarantee the integrity and consistency of metadata in the face of a crash. To this end, we propose a high-efficiency PM allocator, called PMA, with crash consistency guarantee. PMA uses a two-level memory management strategy and sets up a private memory pool for each thread to achieve low fragmentation and high concurrency. Furthermore, PMA employs per-thread write-ahead undo log to protect the integrity and consistency of metadata against crashes. PMA also designs a lightweight persistent pointer to reference an allocated persistent memory object across runtimes. PMA is implemented as an easy-to-use library that is independent of specific PM platforms. Extensive evaluation results on a real PM platform demonstrate the efficiency and efficacy of our proposed PMA, compared with state-of-the-art log-based PM allocators.
Date of Conference: 06-08 November 2023
Date Added to IEEE Xplore: 22 December 2023
ISBN Information: