skip to main content
research-article
Open Access

Makalu: fast recoverable allocation of non-volatile memory

Published:19 October 2016Publication History
Skip Abstract Section

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.

References

  1. NVDIMM special interest group.Google ScholarGoogle Scholar
  2. Pmem.io: Persistent memory programming.Google ScholarGoogle Scholar
  3. NVM programming technical work group.Google ScholarGoogle Scholar
  4. Process integration, devices and structures. International Technology Roadmap for Semiconductors (ITRS), 2013.Google ScholarGoogle Scholar
  5. NVM direct library, 2015.Google ScholarGoogle Scholar
  6. M. Aigner, C. Kirsch, M. Lippautz, and A. Sokolova. Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures. In Proceedings of the 2015 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA ’15, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. P. Atkinson, P. J. Bailey, K. J. Chisholm, P. W. Cockshott, and R. Morrison. Readings in object-oriented database systems. chapter An Approach to Persistent Programming, pages 141–146. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1990. ISBN 0-55860-000-0. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Barnes and P. Hut. A hierarchical O(N log N) forcecalculation algorithm. Nature, 324(6096):446–449, Dec. 1986.Google ScholarGoogle Scholar
  9. E. D. Berger, K. S. McKinley, R. D. Blumofe, and P. R. Wilson. Hoard: A scalable memory allocator for multithreaded applications. In Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS IX, pages 117–128, New York, NY, USA, 2000. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. B. Bernhardsson. Explicit solutions to the n-queens problem for all n. SIGART Bull., 2(2):7–, Feb. 1991. ISSN 0163-5719. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. H.-J. Boehm. A garbage collector for c and c++.Google ScholarGoogle Scholar
  12. H.-J. Boehm. Fast multiprocessor memory allocation and garbage collection. Technical Report HPL-2000-165, Internet and Mobile Systems Laboratory, HP Laboratories, Palo Alto, CA, December 2000.Google ScholarGoogle Scholar
  13. H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., 18(9):807–820, September 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. R. Chakrabarti, H.-J. Boehm, and K. Bhandari. Atlas: Leveraging locks for non-volatile memory consistency. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA ’14, pages 433–452, New York, NY, USA, 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson. Nv-heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVI, pages 105–118, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Dearle, G. N. C. Kirby, and R. Morrison. Orthogonal persistence revisited. In Proceedings of the Second International Conference on Object Databases, ICOODB’09, pages 1–22, Berlin, Heidelberg, 2010. Springer-Verlag. ISBN 3- 642-14680-5, 978-3-642-14680-0. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. T. Endo and K. Taura. Reducing pause time of conservative collectors. In Proceedings of the 3rd International Symposium on Memory Management, ISMM ’02, pages 119–131, New York, NY, USA, 2002. ACM. ISBN 1-58113-539-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Evans. Jemalloc: A scalable concurrent malloc(3) implementation, 2006.Google ScholarGoogle Scholar
  19. T. Gao, K. Strauss, S. M. Blackburn, K. S. McKinley, D. Burger, and J. Larus. Using managed runtime systems to tolerate holes in wearable memories. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 297–308, New York, NY, USA, 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. E. Gentle. Matrix Algebra: Theory, Computations, and Applications in Statistics. Springer Publishing Company, Incorporated, 1st edition, 2007. ISBN 0387708723, 9780387708720. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. W. Gloger. ptmalloc3: Multi-threaded extension to dlmalloc, 2006.Google ScholarGoogle Scholar
  22. Google Inc. Tcmalloc : Thread-caching malloc, 2011.Google ScholarGoogle Scholar
  23. A. L. Hosking and J. Chen. Mostly-copying reachabilitybased orthogonal persistence. In Proceedings of the 14th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA ’99, pages 382– 398, New York, NY, USA, 1999. ACM. ISBN 1-58113-238-7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. R. L. Hudson, B. Saha, A.-R. Adl-Tabatabai, and B. C. Hertzberg. Mcrt-malloc: A scalable transactional memory allocator. In Proceedings of the 5th International Symposium on Memory Management, ISMM ’06, pages 74–83, New York, NY, USA, 2006. ACM. ISBN 1-59593-221-6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Intel Corp. Intel Architecture Instruction Set Extensions Programming Reference,.Google ScholarGoogle Scholar
  26. Intel Corp. Intel64 and IA-32 Architectures Software Developers Manuals Combined,.Google ScholarGoogle Scholar
  27. B. C. Kuszmaul. Supermalloc: A super fast multithreaded malloc for 64-bit machines. In Proceedings of the 2015 ACM SIGPLAN International Symposium on Memory Management, ISMM 2015, pages 41–55, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. P.-A. Larson and M. Krishnan. Memory allocation for longrunning server applications. In Proceedings of the 1st International Symposium on Memory Management, ISMM ’98, pages 176–185, New York, NY, USA, 1998. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. B. C. Lee, E. Ipek, O. Mutlu, and D. Burger. Architecting phase change memory as a scalable dram alternative. In Proceedings of the 36th Annual International Symposium on Computer Architecture, ISCA ’09, pages 2–13, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. K. Lim, J. Chang, T. Mudge, P. Ranganathan, S. K. Reinhardt, and T. F. Wenisch. Disaggregated memory for expansion and sharing in blade servers. In Proceedings of the 36th Annual International Symposium on Computer Architecture, ISCA ’09, pages 267–278, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. C. Mellor. SanDisk, HP take on Micron and Intels faster-than-flash XPoint. The Register, October 2015.Google ScholarGoogle Scholar
  32. M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing, PODC ’96, pages 267– 275, New York, NY, USA, 1996. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Micron. 3D XPoint Technology.Google ScholarGoogle Scholar
  34. M. K. Qureshi, V. Srinivasan, and J. A. Rivers. Scalable high performance main memory system using phase-change memory technology. In Proceedings of the 36th Annual International Symposium on Computer Architecture, ISCA ’09, pages 24–33, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. G. Rodriguez-Rivera, M. Spertus, and C. Fiterman. Conservative garbage collectors for general memory allocators. ISMM ’00, pages 71–79, New York, NY, USA, 2000. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. D. Schwalb, T. Berning, M. Faust, M. Dreseler, and H. Plattner. nvm malloc: Memory allocation for nvram. In Accelerating Data Management Systems Using Modern Processor and Storage Architectures Workshop, In conjunction with VLDB, 2015.Google ScholarGoogle Scholar
  37. P. Snyder. tmpfs: A virtual memory file system. In In Proceedings of the Autumn 1990 European UNIX Users Group Conference, pages 241–248, 1990.Google ScholarGoogle Scholar
  38. D. B. Strukov, G. S. Snider, D. R. Stewart, and R. S. Williams. The missing memristor found. Nature, 453(7191):80–83, May 2008.Google ScholarGoogle ScholarCross RefCross Ref
  39. H. Volos, A. J. Tack, and M. M. Swift. Mnemosyne: Lightweight persistent memory. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVI, pages 91–104, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Makalu: fast recoverable allocation of non-volatile memory

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!