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.
- NVDIMM special interest group.Google Scholar
- Pmem.io: Persistent memory programming.Google Scholar
- NVM programming technical work group.Google Scholar
- Process integration, devices and structures. International Technology Roadmap for Semiconductors (ITRS), 2013.Google Scholar
- NVM direct library, 2015.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- J. Barnes and P. Hut. A hierarchical O(N log N) forcecalculation algorithm. Nature, 324(6096):446–449, Dec. 1986.Google Scholar
- 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 Scholar
Digital Library
- B. Bernhardsson. Explicit solutions to the n-queens problem for all n. SIGART Bull., 2(2):7–, Feb. 1991. ISSN 0163-5719. Google Scholar
Digital Library
- H.-J. Boehm. A garbage collector for c and c++.Google Scholar
- 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 Scholar
- H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., 18(9):807–820, September 1988. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- J. Evans. Jemalloc: A scalable concurrent malloc(3) implementation, 2006.Google Scholar
- 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 Scholar
Digital Library
- J. E. Gentle. Matrix Algebra: Theory, Computations, and Applications in Statistics. Springer Publishing Company, Incorporated, 1st edition, 2007. ISBN 0387708723, 9780387708720. Google Scholar
Digital Library
- W. Gloger. ptmalloc3: Multi-threaded extension to dlmalloc, 2006.Google Scholar
- Google Inc. Tcmalloc : Thread-caching malloc, 2011.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Intel Corp. Intel Architecture Instruction Set Extensions Programming Reference,.Google Scholar
- Intel Corp. Intel64 and IA-32 Architectures Software Developers Manuals Combined,.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- C. Mellor. SanDisk, HP take on Micron and Intels faster-than-flash XPoint. The Register, October 2015.Google Scholar
- 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 Scholar
Digital Library
- Micron. 3D XPoint Technology.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
Index Terms
Makalu: fast recoverable allocation of non-volatile memory
Recommendations
Makalu: fast recoverable allocation of non-volatile memory
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsByte 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. ...
Managing persistent heap in NVRAM
Mobile! 2016: Proceedings of the 1st International Workshop on Mobile DevelopmentThe scalability limitations of current DRAM technology have prompted research in alternative memory technologies. Almost all new viable alternatives being explored are non-volatile in nature. In this talk, we explore the implication of emerging non-...
Zallocator: A High Throughput Write-Optimized Persistent Allocator for Non-Volatile Memory
Non-volatile main memory (NVRAM) is likely to break the bottleneck caused by data transferring between main memory and extern storage, and fundamentally change the way applications do data persistence. We can build persistent data structures directly on ...







Comments