Makalu: fast recoverable allocation of non-volatile memory

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.

[1]  Bo Bernhardsson,et al.  Explicit solutions to the N-queens problem for all N , 1991, SGAR.

[2]  Vijayalakshmi Srinivasan,et al.  Scalable high performance main memory system using phase-change memory technology , 2009, ISCA '09.

[3]  D. Stewart,et al.  The missing memristor found , 2008, Nature.

[4]  Hasso Plattner,et al.  nvm malloc: Memory Allocation for NVRAM , 2015, ADMS@VLDB.

[5]  Piet Hut,et al.  A hierarchical O(N log N) force-calculation algorithm , 1986, Nature.

[6]  Rajesh K. Gupta,et al.  NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories , 2011, ASPLOS XVI.

[7]  Ana Sokolova,et al.  Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures , 2015, OOPSLA.

[8]  Michael Spertus,et al.  Conservative garbage collection for general memory allocators , 2000, ISMM '00.

[9]  Hans-Juergen Boehm,et al.  Garbage collection in an uncooperative environment , 1988, Softw. Pract. Exp..

[10]  Thomas F. Wenisch,et al.  Disaggregated memory for expansion and sharing in blade servers , 2009, ISCA '09.

[11]  Antony L. Hosking,et al.  Mostly-copying reachability-based orthogonal persistence , 1999, OOPSLA '99.

[12]  Peter Snyder,et al.  tmpfs: A Virtual Memory File System , 1990 .

[13]  David Maier,et al.  Readings in Object-Oriented Database Systems , 1989 .

[14]  Hans-Juergen Boehm,et al.  Atlas: leveraging locks for non-volatile memory consistency , 2014, OOPSLA.

[15]  Ronald Morrison,et al.  Orthogonal Persistence Revisited , 2009, ICOODB.

[16]  Toshio Endo,et al.  Reducing pause time of conservative collectors , 2002, ISMM '02.

[17]  James E. Gentle,et al.  Matrix Algebra: Theory, Computations, and Applications in Statistics , 2007 .

[18]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[19]  Ali-Reza Adl-Tabatabai,et al.  McRT-Malloc: a scalable transactional memory allocator , 2006, ISMM '06.

[20]  Onur Mutlu,et al.  Architecting phase change memory as a scalable dram alternative , 2009, ISCA '09.

[21]  Karin Strauss,et al.  Using managed runtime systems to tolerate holes in wearable memories , 2013, PLDI 2013.

[22]  Hans-J. Boehm Fast Multiprocessor Memory Allocation and Garbage Collection , 2000 .

[23]  Bradley C. Kuszmaul SuperMalloc: a super fast multithreaded malloc for 64-bit machines , 2015, ISMM.

[24]  Michael M. Swift,et al.  Mnemosyne: lightweight persistent memory , 2011, ASPLOS XVI.

[25]  Kathryn S. McKinley,et al.  Hoard: a scalable memory allocator for multithreaded applications , 2000, SIGP.

[26]  Per-Åke Larson,et al.  Memory allocation for long-running server applications , 1998, ISMM '98.

[27]  Alain C. Diebold,et al.  2012 Updates to the International Technology Roadmap for Semiconductors (ITRS) Metrology Chapter | NIST , 2013 .