Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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
  • Get Citation Alerts
  • 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

    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)211
    • Downloads (Last 6 weeks)24

    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

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media