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:
-
- Rice Univ., Houston, TX (United States); Hewlett Packard Labs., Palo Alto, CA (United States)
- Hewlett Packard Labs., Palo Alto, CA (United States)
- 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}
}
Web of Science
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
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
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
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
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
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
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
Garbage collection in an uncooperative environment
journal, September 1988
- Boehm, Hans-Juergen; Weiser, Mark
- Software: Practice and Experience, Vol. 18, Issue 9
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
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
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
Reducing pause time of conservative collectors
conference, January 2002
- Endo, Toshio; Taura, Kenjiro
- Proceedings of the third international symposium on Memory management - ISMM '02
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
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
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
A hierarchical O(N log N) force-calculation algorithm
journal, December 1986
- Barnes, Josh; Hut, Piet
- Nature, Vol. 324, Issue 6096
Explicit solutions to the N -queens problem for all N
journal, February 1991
- Bernhardsson, Bo
- ACM SIGART Bulletin, Vol. 2, Issue 2
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
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
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
SuperMalloc: a super fast multithreaded malloc for 64-bit machines
journal, January 2016
- Kuszmaul, Bradley C.
- ACM SIGPLAN Notices, Vol. 50, Issue 11
Conservative garbage collection for general memory allocators
conference, January 2000
- Rodriguez-Rivera, Gustavo
- Proceedings of the second international symposium on Memory management - ISMM '00
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
An Analysis of Persistent Memory Use with WHISPER
journal, May 2017
- Nalli, Sanketh; Haria, Swapnil; Hill, Mark D.
- ACM SIGPLAN Notices, Vol. 52, Issue 4
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
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
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
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