Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Makalu: fast recoverable allocation of non-volatile memory

Journal Article · · SIGPLAN
 [1];  [2];  [3]
  1. Rice Univ., Houston, TX (United States); Hewlett Packard Labs., Palo Alto, CA (United States); Rice University and Hewlett Packard Labs, USA
  2. Hewlett Packard Labs., Palo Alto, CA (United States)
  3. Google Inc., Mountain View, CA (United States)

Byte addressable non-volatile memory (NVRAM) is likely to supplement, and perhaps eventually replace, DRAM. Applications can then persist data structures directly in memory instead of serializing them and storing them onto a durable block device. However, failures during execution can leave data structures in NVRAM unreachable or corrupt. In this paper, we present Makalu, a system that addresses non-volatile memory management. Makalu offers an integrated allocator and recovery-time garbage collector that maintains internal consistency, avoids NVRAM memory leaks, and is efficient, all in the face of failures. We show that a careful allocator design can support a less restrictive and a much more familiar programming model than existing persistent memory allocators. Our allocator significantly reduces the per allocation persistence overhead by lazily persisting non-essential metadata and by employing a post-failure recovery-time garbage collector. Experimental results show that the resulting online speed and scalability of our allocator are comparable to well-known transient allocators, and significantly better than state-of-the-art persistent allocators.

Research Organization:
Hewlett Packard Labs., Palo Alto, CA (United States); Rice Univ., Houston, TX (United States)
Sponsoring Organization:
USDOE Office of Science (SC), Advanced Scientific Computing Research (ASCR) (SC-21)
Grant/Contract Number:
SC0012199
OSTI ID:
1425366
Journal Information:
SIGPLAN, Journal Name: SIGPLAN Journal Issue: 10 Vol. 51; ISSN 0362-1340
Publisher:
ACMCopyright Statement
Country of Publication:
United States
Language:
English

References (38)

Matrix Algebra book July 2005
Garbage collection in an uncooperative environment journal September 1988
Matrix Algebra book January 2007
Matrix Algebra book January 1978
Matrix Algebra book January 2017
Orthogonal Persistence Revisited book January 2010
Matrix Algebra: Using MATLAB book January 2019
Matrix Algebra book June 2012
A hierarchical O(N log N) force-calculation algorithm journal December 1986
The missing memristor found journal May 2008
McRT-Malloc: a scalable transactional memory allocator conference January 2006
Explicit solutions to the N -queens problem for all N journal February 1991
Architecting phase change memory as a scalable dram alternative conference January 2009
Scalable high performance main memory system using phase-change memory technology
  • Qureshi, Moinuddin K.; Srinivasan, Vijayalakshmi; Rivers, Jude A.
  • Proceedings of the 36th annual international symposium on Computer architecture - ISCA '09 https://doi.org/10.1145/1555754.1555760
conference January 2009
Disaggregated memory for expansion and sharing in blade servers conference January 2009
Architecting phase change memory as a scalable dram alternative journal June 2009
Scalable high performance main memory system using phase-change memory technology journal June 2009
Disaggregated memory for expansion and sharing in blade servers journal June 2009
Mnemosyne: lightweight persistent memory
  • Volos, Haris; Tack, Andres Jaan; Swift, Michael M.
  • Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems - ASPLOS '11 https://doi.org/10.1145/1950365.1950379
conference January 2011
NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories
  • Coburn, Joel; Caulfield, Adrian M.; Akel, Ameen
  • Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems - ASPLOS '11 https://doi.org/10.1145/1950365.1950380
conference January 2011
NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories journal March 2011
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms conference January 1996
Using managed runtime systems to tolerate holes in wearable memories
  • Gao, Tiejun; Strauss, Karin; Blackburn, Stephen M.
  • Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation - PLDI '13 https://doi.org/10.1145/2491956.2462171
conference January 2013
Using managed runtime systems to tolerate holes in wearable memories journal June 2013
Atlas: leveraging locks for non-volatile memory consistency
  • Chakrabarti, Dhruva R.; Boehm, Hans-J.; Bhandari, Kumud
  • Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications - OOPSLA '14 https://doi.org/10.1145/2660193.2660224
conference January 2014
SuperMalloc: a super fast multithreaded malloc for 64-bit machines conference January 2015
Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures
  • Aigner, Martin; Kirsch, Christoph M.; Lippautz, Michael
  • Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications - OOPSLA 2015 https://doi.org/10.1145/2814270.2814294
conference January 2015
Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures journal December 2015
Memory allocation for long-running server applications conference January 1998
SuperMalloc: a super fast multithreaded malloc for 64-bit machines journal January 2016
Memory allocation for long-running server applications journal March 1999
Mostly-copying reachability-based orthogonal persistence
  • Hosking, Antony L.; Chen, Jiawan
  • Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications - OOPSLA '99 https://doi.org/10.1145/320384.320427
conference January 1999
Mostly-copying reachability-based orthogonal persistence journal October 1999
Conservative garbage collection for general memory allocators conference January 2000
Hoard: a scalable memory allocator for multithreaded applications
  • Berger, Emery D.; McKinley, Kathryn S.; Blumofe, Robert D.
  • Proceedings of the ninth international conference on Architectural support for programming languages and operating systems - ASPLOS-IX https://doi.org/10.1145/378993.379232
conference January 2000
Reducing pause time of conservative collectors conference January 2002
Reducing pause time of conservative collectors journal February 2003
Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. report December 1995

Cited By (15)

An Analysis of Persistent Memory Use with WHISPER journal May 2017
A Case for Asymmetric Non-Volatile Memory Architecture preprint January 2018
PUMA: A Programmable Ultra-efficient Memristor-based Accelerator for Machine Learning Inference preprint January 2019
Fine-Grain Checkpointing with In-Cache-Line Logging text January 2019
An Empirical Guide to the Behavior and Use of Scalable Persistent Memory preprint January 2019
Transactions on Red-black and AVL trees in NVRAM preprint January 2020
WITCHER : Detecting Crash Consistency Bugs in Non-volatile Memory Programs preprint January 2020
Flat-Combining-Based Persistent Data Structures for Non-Volatile Memory preprint January 2020
An Analysis of Persistent Memory Use with WHISPER
  • Nalli, Sanketh; Haria, Swapnil; Hill, Mark D.
  • ASPLOS '17: Architectural Support for Programming Languages and Operating Systems, Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems https://doi.org/10.1145/3037697.3037730
conference April 2017
An Analysis of Persistent Memory Use with WHISPER journal April 2017
An Analysis of Persistent Memory Use with WHISPER journal May 2017
Espresso: Brewing Java For More Non-Volatility with Non-volatile Memory
  • Wu, Mingyu; Zhao, Ziming; Li, Haoyu
  • ASPLOS '18: Architectural Support for Programming Languages and Operating Systems, Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems https://doi.org/10.1145/3173162.3173201
conference March 2018
A persistent lock-free queue for non-volatile memory
  • Friedman, Michal; Herlihy, Maurice; Marathe, Virendra
  • PPoPP '18: 23nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming https://doi.org/10.1145/3178487.3178490
conference February 2018
A persistent lock-free queue for non-volatile memory journal March 2018
PUMA: A Programmable Ultra-efficient Memristor-based Accelerator for Machine Learning Inference
  • Ankit, Aayush; Hajj, Izzat El; Chalamalasetti, Sai Rahul
  • ASPLOS '19: Architectural Support for Programming Languages and Operating Systems, Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems https://doi.org/10.1145/3297858.3304049
conference April 2019

Similar Records

SharP Unified Memory Allocator: An Intent-Based Memory Allocator for Extreme-Scale Systems
Conference · Wed Aug 01 00:00:00 EDT 2018 · OSTI ID:1468045

Persistent Octrees for Parallel Mesh Refinement Through Non-Volatile Byte-Addressable Memory
Journal Article · Thu Aug 30 00:00:00 EDT 2018 · IEEE Transactions on Parallel and Distributed Systems · OSTI ID:1469556

Single-node Partitioned-Memory for Huge Graph Analytics: Cost and Performance Trade-offs
Conference · Sat Nov 13 23:00:00 EST 2021 · OSTI ID:1836010