DOE PAGES 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:
Accepted Manuscript
Journal Name:
SIGPLAN
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},
journal = {SIGPLAN},
number = 10,
volume = 51,
place = {United States},
year = {Wed Oct 19 00:00:00 EDT 2016},
month = {Wed Oct 19 00:00:00 EDT 2016}
}

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

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

Save / Share:

Works referenced in this record:

The missing memristor found
journal, May 2008

  • Strukov, Dmitri B.; Snider, Gregory S.; Stewart, Duncan R.
  • Nature, Vol. 453, Issue 7191
  • DOI: 10.1038/nature06932

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
  • DOI: 10.1145/2814270.2814294

Using managed runtime systems to tolerate holes in wearable memories
journal, June 2013

  • Gao, Tiejun; Strauss, Karin; Blackburn, Stephen M.
  • ACM SIGPLAN Notices, Vol. 48, Issue 6
  • DOI: 10.1145/2499370.2462171

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
  • DOI: 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
  • DOI: 10.1145/2491956.2462171

Matrix Algebra
book, January 2007


Matrix Algebra
book, January 2017


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
  • DOI: 10.1145/1950365.1950379

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

  • Lim, Kevin; Chang, Jichuan; Mudge, Trevor
  • Proceedings of the 36th annual international symposium on Computer architecture - ISCA '09
  • DOI: 10.1145/1555754.1555789

Scalable high performance main memory system using phase-change memory technology
journal, June 2009

  • Qureshi, Moinuddin K.; Srinivasan, Vijayalakshmi; Rivers, Jude A.
  • ACM SIGARCH Computer Architecture News, Vol. 37, Issue 3
  • DOI: 10.1145/1555815.1555760

Matrix Algebra
book, January 1978


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
  • DOI: 10.1145/1950365.1950380

Garbage collection in an uncooperative environment
journal, September 1988

  • Boehm, Hans-Juergen; Weiser, Mark
  • Software: Practice and Experience, Vol. 18, Issue 9
  • DOI: 10.1002/spe.4380180902

Matrix Algebra
book, June 2012


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

  • Lim, Kevin; Chang, Jichuan; Mudge, Trevor
  • ACM SIGARCH Computer Architecture News, Vol. 37, Issue 3
  • DOI: 10.1145/1555815.1555789

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

  • Aigner, Martin; Kirsch, Christoph M.; Lippautz, Michael
  • ACM SIGPLAN Notices, Vol. 50, Issue 10
  • DOI: 10.1145/2858965.2814294

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

  • Hudson, Richard L.; Saha, Bratin; Adl-Tabatabai, Ali-Reza
  • Proceedings of the 2006 international symposium on Memory management - ISMM '06
  • DOI: 10.1145/1133956.1133967

Mostly-copying reachability-based orthogonal persistence
journal, October 1999


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

  • Larson, Per-Ã…ke; Krishnan, Murali
  • Proceedings of the first international symposium on Memory management - ISMM '98
  • DOI: 10.1145/286860.286880

Reducing pause time of conservative collectors
conference, January 2002

  • Endo, Toshio; Taura, Kenjiro
  • Proceedings of the third international symposium on Memory management - ISMM '02
  • DOI: 10.1145/512429.512432

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

  • Michael, Maged M.; Scott, Michael L.
  • Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing - PODC '96
  • DOI: 10.1145/248052.248106

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
  • DOI: 10.1145/320384.320427

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


Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms.
report, December 1995


Orthogonal Persistence Revisited
book, January 2010


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

  • Coburn, Joel; Caulfield, Adrian M.; Akel, Ameen
  • ACM SIGPLAN Notices, Vol. 46, Issue 3
  • DOI: 10.1145/1961296.1950380

Conservative garbage collection for general memory allocators
conference, January 2000

  • Rodriguez-Rivera, Gustavo
  • Proceedings of the second international symposium on Memory management - ISMM '00
  • DOI: 10.1145/362422.362464

Reducing pause time of conservative collectors
journal, February 2003

  • Endo, Toshio; Taura, Kenjiro
  • ACM SIGPLAN Notices, Vol. 38, Issue 2 supplement
  • DOI: 10.1145/773039.512432

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
  • DOI: 10.1145/378993.379232

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

  • Lee, Benjamin C.; Ipek, Engin; Mutlu, Onur
  • Proceedings of the 36th annual international symposium on Computer architecture - ISCA '09
  • DOI: 10.1145/1555754.1555758

Memory allocation for long-running server applications
journal, March 1999


Architecting phase change memory as a scalable dram alternative
journal, June 2009

  • Lee, Benjamin C.; Ipek, Engin; Mutlu, Onur
  • ACM SIGARCH Computer Architecture News, Vol. 37, Issue 3
  • DOI: 10.1145/1555815.1555758

Matrix Algebra
book, July 2005


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
  • DOI: 10.1145/2660193.2660224

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


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

  • Kuszmaul, Bradley C.
  • Proceedings of the 2015 ACM SIGPLAN International Symposium on Memory Management - ISMM 2015
  • DOI: 10.1145/2754169.2754178

Works referencing / citing this record:

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

  • Nalli, Sanketh; Haria, Swapnil; Hill, Mark D.
  • ACM SIGARCH Computer Architecture News, Vol. 45, Issue 1
  • DOI: 10.1145/3093337.3037730

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
  • DOI: 10.1145/3173162.3173201

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


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
  • DOI: 10.1145/3037697.3037730

A persistent lock-free queue for non-volatile memory
journal, March 2018

  • Friedman, Michal; Herlihy, Maurice; Marathe, Virendra
  • ACM SIGPLAN Notices, Vol. 53, Issue 1
  • DOI: 10.1145/3200691.3178490

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
  • DOI: 10.1145/3178487.3178490

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

  • Nalli, Sanketh; Haria, Swapnil; Hill, Mark D.
  • ACM SIGOPS Operating Systems Review, Vol. 51, Issue 2
  • DOI: 10.1145/3093315.3037730

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
  • DOI: 10.1145/3297858.3304049

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