Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2983990.2984019acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article
Open access

Makalu: fast recoverable allocation of non-volatile memory

Published: 19 October 2016 Publication History

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.
[2]
Pmem.io: Persistent memory programming.
[3]
NVM programming technical work group.
[4]
Process integration, devices and structures. International Technology Roadmap for Semiconductors (ITRS), 2013.
[5]
NVM direct library, 2015.
[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.
[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.
[8]
J. Barnes and P. Hut. A hierarchical O(N log N) forcecalculation algorithm. Nature, 324(6096):446–449, Dec. 1986.
[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.
[10]
B. Bernhardsson. Explicit solutions to the n-queens problem for all n. SIGART Bull., 2(2):7–, Feb. 1991. ISSN 0163-5719.
[11]
H.-J. Boehm. A garbage collector for c and c++.
[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.
[13]
H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., 18(9):807–820, September 1988.
[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.
[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.
[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.
[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.
[18]
J. Evans. Jemalloc: A scalable concurrent malloc(3) implementation, 2006.
[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.
[20]
J. E. Gentle. Matrix Algebra: Theory, Computations, and Applications in Statistics. Springer Publishing Company, Incorporated, 1st edition, 2007. ISBN 0387708723, 9780387708720.
[21]
W. Gloger. ptmalloc3: Multi-threaded extension to dlmalloc, 2006.
[22]
Google Inc. Tcmalloc : Thread-caching malloc, 2011.
[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.
[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.
[25]
Intel Corp. Intel Architecture Instruction Set Extensions Programming Reference,.
[26]
Intel Corp. Intel64 and IA-32 Architectures Software Developers Manuals Combined,.
[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.
[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.
[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.
[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.
[31]
C. Mellor. SanDisk, HP take on Micron and Intels faster-than-flash XPoint. The Register, October 2015.
[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.
[33]
Micron. 3D XPoint Technology.
[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.
[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.
[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.
[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.
[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.
[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.

Cited By

View all
  • (2023)Perseid: A Secondary Indexing Mechanism for LSM-Based Storage SystemsACM Transactions on Storage10.1145/363328520:2(1-28)Online publication date: 17-Nov-2023
  • (2023)Partial Failure Resilient Memory Management System for (CXL-based) Distributed Shared MemoryProceedings of the 29th Symposium on Operating Systems Principles10.1145/3600006.3613135(658-674)Online publication date: 23-Oct-2023
  • (2023)When Tree Meets Hash: Reducing Random Reads for Index Structures on Persistent MemoriesProceedings of the ACM on Management of Data10.1145/35889591:1(1-26)Online publication date: 30-May-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
October 2016
915 pages
ISBN:9781450344449
DOI:10.1145/2983990
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. allocation
  2. deallocation
  3. garbage collection
  4. non-volatile memory
  5. persistent memory management

Qualifiers

  • Research-article

Funding Sources

Conference

SPLASH '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)354
  • Downloads (Last 6 weeks)115
Reflects downloads up to 22 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Perseid: A Secondary Indexing Mechanism for LSM-Based Storage SystemsACM Transactions on Storage10.1145/363328520:2(1-28)Online publication date: 17-Nov-2023
  • (2023)Partial Failure Resilient Memory Management System for (CXL-based) Distributed Shared MemoryProceedings of the 29th Symposium on Operating Systems Principles10.1145/3600006.3613135(658-674)Online publication date: 23-Oct-2023
  • (2023)When Tree Meets Hash: Reducing Random Reads for Index Structures on Persistent MemoriesProceedings of the ACM on Management of Data10.1145/35889591:1(1-26)Online publication date: 30-May-2023
  • (2023)V-WAFA: An Endurance Variation Aware Fine-Grained Allocator for Persistent MemoryIEEE Transactions on Computers10.1109/TC.2022.319708672:4(998-1010)Online publication date: 1-Apr-2023
  • (2023)FastStore: A High-Performance RDMA-Enabled Distributed Key-Value Store with Persistent Memory2023 IEEE 43rd International Conference on Distributed Computing Systems (ICDCS)10.1109/ICDCS57875.2023.00030(406-417)Online publication date: Jul-2023
  • (2022)Evaluating persistent memory range indexesProceedings of the VLDB Endowment10.14778/3551793.355180815:11(2477-2490)Online publication date: 29-Sep-2022
  • (2022)Zallocator: A High Throughput Write-Optimized Persistent Allocator for Non-Volatile MemoryACM Journal on Emerging Technologies in Computing Systems10.1145/354952818:4(1-20)Online publication date: 13-Oct-2022
  • (2022)Preserving Addressability Upon GC-Triggered Data Movements on Non-Volatile MemoryACM Transactions on Architecture and Code Optimization10.1145/351170619:2(1-26)Online publication date: 24-Mar-2022
  • (2021)J-NVMProceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles10.1145/3477132.3483579(408-423)Online publication date: 26-Oct-2021
  • (2021)WitcherProceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles10.1145/3477132.3483556(100-115)Online publication date: 26-Oct-2021
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media