skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Makalu: fast recoverable allocation of non-volatile memory

Abstract

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.

Authors:
 [1];  [2];  [3]
  1. Rice Univ., Houston, TX (United States); Hewlett Packard Labs., Palo Alto, CA (United States)
  2. Hewlett Packard Labs., Palo Alto, CA (United States)
  3. Google Inc., Mountain View, CA (United States)
Publication Date:
Research Org.:
Hewlett Packard Labs., Palo Alto, CA (United States); Rice Univ., Houston, TX (United States)
Sponsoring Org.:
USDOE Office of Science (SC), Advanced Scientific Computing Research (ASCR)
OSTI Identifier:
1425366
Grant/Contract Number:  
SC0012199
Resource Type:
Journal Article: Accepted Manuscript
Journal Name:
ACM SIGPLAN Notices
Additional Journal Information:
Journal Volume: 51; Journal Issue: 10; Conference: 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, Amsterdam (Netherlands), 31 Oct-4 Nov 2016; Journal ID: ISSN 0362-1340
Publisher:
ACM
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING; languages; performance; reliability; non-volatile memory; persistent memory management; allocation; deallocation; garbage collection

Citation Formats

Bhandari, Kumud, Chakrabarti, Dhruva R., and Boehm, Hans-J. Makalu: fast recoverable allocation of non-volatile memory. United States: N. p., 2016. Web. doi:10.1145/2983990.2984019.
Bhandari, Kumud, Chakrabarti, Dhruva R., & Boehm, Hans-J. Makalu: fast recoverable allocation of non-volatile memory. United States. https://doi.org/10.1145/2983990.2984019
Bhandari, Kumud, Chakrabarti, Dhruva R., and Boehm, Hans-J. Wed . "Makalu: fast recoverable allocation of non-volatile memory". United States. https://doi.org/10.1145/2983990.2984019. https://www.osti.gov/servlets/purl/1425366.
@article{osti_1425366,
title = {Makalu: fast recoverable allocation of non-volatile memory},
author = {Bhandari, Kumud and Chakrabarti, Dhruva R. and Boehm, Hans-J.},
abstractNote = {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.},
doi = {10.1145/2983990.2984019},
url = {https://www.osti.gov/biblio/1425366}, journal = {ACM SIGPLAN Notices},
issn = {0362-1340},
number = 10,
volume = 51,
place = {United States},
year = {2016},
month = {10}
}

Journal Article:
Free Publicly Available Full Text
Publisher's Version of Record

Citation Metrics:
Cited by: 10 works
Citation information provided by
Web of Science

Save / Share:

Works referenced in this record:

The missing memristor found
journal, May 2008


Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures
conference, January 2015

  • 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

Scalable high performance main memory system using phase-change memory technology
conference, January 2009

  • 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

Using managed runtime systems to tolerate holes in wearable memories
conference, January 2013

  • 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

Hoard: a scalable memory allocator for multithreaded applications
conference, January 2000

  • 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

Disaggregated memory for expansion and sharing in blade servers
conference, January 2009


Architecting phase change memory as a scalable dram alternative
conference, January 2009


Garbage collection in an uncooperative environment
journal, September 1988


Atlas: leveraging locks for non-volatile memory consistency
conference, January 2014

  • 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

McRT-Malloc: a scalable transactional memory allocator
conference, January 2006


Memory allocation for long-running server applications
conference, January 1998


Reducing pause time of conservative collectors
conference, January 2002


Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
conference, January 1996


SuperMalloc: a super fast multithreaded malloc for 64-bit machines
conference, January 2015


Mostly-copying reachability-based orthogonal persistence
conference, January 1999

  • 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

A hierarchical O(N log N) force-calculation algorithm
journal, December 1986


Explicit solutions to the N -queens problem for all N
journal, February 1991


Disaggregated memory for expansion and sharing in blade servers
journal, June 2009


Mnemosyne: lightweight persistent memory
conference, January 2011

  • 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

NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories
conference, January 2011

  • 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

SuperMalloc: a super fast multithreaded malloc for 64-bit machines
journal, January 2016


Conservative garbage collection for general memory allocators
conference, January 2000


    Works referencing / citing this record:

    An Analysis of Persistent Memory Use with WHISPER
    conference, April 2017

    • 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

    An Analysis of Persistent Memory Use with WHISPER
    journal, May 2017


    An Analysis of Persistent Memory Use with WHISPER
    journal, May 2017


    Espresso: Brewing Java For More Non-Volatility with Non-volatile Memory
    conference, March 2018

    • 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

    A persistent lock-free queue for non-volatile memory
    conference, February 2018

    • 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

    PUMA: A Programmable Ultra-efficient Memristor-based Accelerator for Machine Learning Inference
    conference, April 2019

    • 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