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:
- 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}
}
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
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
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
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
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
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
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
Garbage collection in an uncooperative environment
journal, September 1988
- Boehm, Hans-Juergen; Weiser, Mark
- Software: Practice and Experience, Vol. 18, Issue 9
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
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
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
Mostly-copying reachability-based orthogonal persistence
journal, October 1999
- Hosking, Antony L.; Chen, Jiawan
- ACM SIGPLAN Notices, Vol. 34, Issue 10
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
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
Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms.
report, December 1995
- Michael, Maged M.; Scott, Michael L.
Orthogonal Persistence Revisited
book, January 2010
- Dearle, Alan; Kirby, Graham N. C.; Morrison, Ron
- Lecture Notes in Computer Science
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
Conservative garbage collection for general memory allocators
conference, January 2000
- Rodriguez-Rivera, Gustavo
- Proceedings of the second international symposium on Memory management - ISMM '00
Reducing pause time of conservative collectors
journal, February 2003
- Endo, Toshio; Taura, Kenjiro
- ACM SIGPLAN Notices, Vol. 38, Issue 2 supplement
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
Explicit solutions to the N -queens problem for all N
journal, February 1991
- Bernhardsson, Bo
- ACM SIGART Bulletin, Vol. 2, Issue 2
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
Memory allocation for long-running server applications
journal, March 1999
- Larson, Per-Ã…ke; Krishnan, Murali
- ACM SIGPLAN Notices, Vol. 34, Issue 3
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
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
SuperMalloc: a super fast multithreaded malloc for 64-bit machines
journal, January 2016
- Kuszmaul, Bradley C.
- ACM SIGPLAN Notices, Vol. 50, Issue 11
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
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
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
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
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
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
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
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
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
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
A Case for Asymmetric Non-Volatile Memory Architecture
preprint, January 2018
- Ma, Teng; Zhang, Mingxing; Chen, Kang
- arXiv
PUMA: A Programmable Ultra-efficient Memristor-based Accelerator for Machine Learning Inference
preprint, January 2019
- Ankit, Aayush; Hajj, Izzat El; Chalamalasetti, Sai Rahul
- arXiv
Fine-Grain Checkpointing with In-Cache-Line Logging
text, January 2019
- Cohen, Nachshon; Aksun, David T.; Avni, Hillel
- arXiv
An Empirical Guide to the Behavior and Use of Scalable Persistent Memory
preprint, January 2019
- Yang, Jian; Kim, Juno; Hoseinzadeh, Morteza
- arXiv
Transactions on Red-black and AVL trees in NVRAM
preprint, January 2020
- Schütt, Thorsten; Schintke, Florian; Skrzypczak, Jan
- arXiv
WITCHER : Detecting Crash Consistency Bugs in Non-volatile Memory Programs
preprint, January 2020
- Fu, Xinwei; Kim, Wook-Hee; Shreepathi, Ajay Paddayuru
- arXiv
Flat-Combining-Based Persistent Data Structures for Non-Volatile Memory
preprint, January 2020
- Rusanovsky, Matan; Attiya, Hagit; Ben-Baruch, Ohad
- arXiv