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

skip to main content
10.1145/3437801.3441582acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Efficiently reclaiming memory in concurrent search data structures while bounding wasted memory

Published: 17 February 2021 Publication History

Abstract

Nonblocking data structures face a safe memory reclamation (SMR) problem. In these algorithms, a node removed from the data structure cannot be reclaimed (freed) immediately, as other threads may be about to access it. The goal of an SMR scheme is to minimize the number of removed nodes that cannot be reclaimed---called wasted memory---while imposing low run-time overhead. It is also desirable for an SMR scheme to be self-contained and not require specific OS features.
No existing self-contained SMR scheme can guarantee a predetermined bound on wasted memory without imposing significant run-time overhead. In this paper, we introduce margin pointers (MP), the first nonblocking, self-contained SMR scheme featuring both predetermined bounded wasted memory and low run-time overhead. MP targets search data structures, such as binary trees and skip lists, which are important SMR clients and also victims of its high overhead. MP's novelty lies in its protecting logical subsets of the data structure from being reclaimed, as opposed to previous work, which protects physical locations (explicit nodes).

References

[1]
Dan Alistarh, William Leiserson, Alex Matveev, and Nir Shavit. 2015. ThreadScan: Automatic and Scalable Memory Reclamation. In SPAA '15.
[2]
Dan Alistarh, William Leiserson, Alex Matveev, and Nir Shavit. 2017. Forkscan: Conservative Memory Reclamation for Modern Operating Systems. In EuroSys '17.
[3]
Oana Balmau, Rachid Guerraoui, Maurice Herlihy, and Igor Zablotchi. 2016. Fast and Robust Memory Reclamation for Concurrent Data Structures. In SPAA '16.
[4]
Anastasia Braginsky, Alex Kogan, and Erez Petrank. 2013. Drop the Anchor: Lightweight Memory Management for Non-blocking Data Structures. In SPAA '13.
[5]
Trevor Brown, Faith Ellen, and Eric Ruppert. 2014. A General Technique for Non-Blocking Trees. In PPoPP '14.
[6]
Trevor Alexander Brown. 2015. Reclaiming Memory for Lock-Free Data Structures: There Has to Be a Better Way. In PODC '15.
[7]
Nachshon Cohen. 2018. Every Data Structure Deserves Lock-free Memory Reclamation. Proceedings of the ACM on Programming Languages 2, OOPSLA, Article 143 (2018).
[8]
Nachshon Cohen and Erez Petrank. 2015. Automatic Memory Reclamation for Lock-free Data Structures (OOPSLA 2015).
[9]
Nachshon Cohen and Erez Petrank. 2015. Efficient Memory Management for Lock-Free Data Structures with Optimistic Access. In SPAA '15.
[10]
Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. 2015. Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures. In ASPLOS '15.
[11]
David L. Detlefs, Paul A. Martin, Mark Moir, and Guy L. Steele, Jr. 2002. Lock-free Reference Counting. Distributed Computing 15, 4 (2002).
[12]
Dave Dice, Maurice Herlihy, and Alex Kogan. 2016. Fast Non-Intrusive Memory Reclamation for Highly-Concurrent Data Structures. In ISMM '16.
[13]
Faith Ellen, Panagiota Fatourou, Eric Ruppert, and Franck van Breugel. 2010. Non-Blocking Binary Search Trees. In PODC '10.
[14]
Jason Evans. 2006. A Scalable Concurrent malloc(3) Implementation for FreeBSD.
[15]
Keir Fraser. 2004. Practical lock-freedom. Ph.D. Dissertation. University of Cambridge.
[16]
Timothy L. Harris. 2001. A Pragmatic Implementation of Non-blocking Linked-Lists. In DISC '01.
[17]
Maurice Herlihy. 1991. Wait-free synchronization. TOPLAS 13 (January 1991), 26 pages. Issue 1.
[18]
Maurice Herlihy, Victor Luchangco, Paul Martin, and Mark Moir. 2002. Dynamic-Sized Lock-Free Data Structures. In PODC '02.
[19]
Shane V. Howley and Jeremy Jones. 2012. A Non-Blocking Internal Binary Search Tree. In SPAA '12.
[20]
Paul E. McKenney and John D. Slingwine. 1998. Read-copy update: Using execution history to solve concurrency problems. In PDCS '98.
[21]
Maged M. Michael. 2002. High Performance Dynamic Lock-Free Hash Tables and List-Based Sets. In SPAA '02.
[22]
Maged. M. Michael. 2004. Hazard pointers: safe memory reclamation for lock-free objects. IEEE Transactions on Parallel and Distributed Systems 15, 6 (2004).
[23]
Maged M. Michael, Michael Wong, Paul McKenney, Arthur O'Dwyer, and David Hollman. 2017. Hazard Pointers: Safe Resource Reclamation for Optimistic Concurrency. Technical Report P0233R3. C++ SG14 Working Group.
[24]
Aravind Natarajan and Neeraj Mittal. 2014. Fast Concurrent Lock-free Binary Search Trees. In PPoPP '14.
[25]
Matthew Parkinson, Dimitrios Vytiniotis, Kapil Vaswani, Manuel Costa, Pantazis Deligiannis, Dylan McDermott, Aaron Blankstein, and Jonathan Balkind. 2017. Project Snowflake: Non-blocking Safe Manual Memory Management in .NET. Proceedings of the ACM on Programming Languages (2017).
[26]
Arunmoezhi Ramachandran and Neeraj Mittal. 2015. A Fast Lock-Free Internal Binary Search Tree. In ICDCN '15.
[27]
Pedro Ramalhete and Andreia Correia. 2017. Brief Announcement: Hazard Eras - Non-Blocking Memory Reclamation. In SPAA '17.
[28]
Daniel Solomon. 2020. Efficiently Reclaiming Memory in Concurrent Search Data Structures While Bounding Wasted Memory. Master's thesis. Tel Aviv University.
[29]
Haosen Wen, Joseph Izraelevitz, Wentao Cai, H. Alan Beadle, and Michael L. Scott. 2018. Interval-based Memory Reclamation. In PPoPP '18.

Cited By

View all
  • (2023)The ERA Theorem for Safe Memory ReclamationProceedings of the 2023 ACM Symposium on Principles of Distributed Computing10.1145/3583668.3594564(102-112)Online publication date: 19-Jun-2023

Index Terms

  1. Efficiently reclaiming memory in concurrent search data structures while bounding wasted memory

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PPoPP '21: Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
    February 2021
    507 pages
    ISBN:9781450382946
    DOI:10.1145/3437801
    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 the author(s) 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

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 17 February 2021

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. hazard pointers
    2. safe memory reclamation

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    PPoPP '21

    Acceptance Rates

    PPoPP '21 Paper Acceptance Rate 31 of 150 submissions, 21%;
    Overall Acceptance Rate 230 of 1,014 submissions, 23%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)21
    • Downloads (Last 6 weeks)7
    Reflects downloads up to 18 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)The ERA Theorem for Safe Memory ReclamationProceedings of the 2023 ACM Symposium on Principles of Distributed Computing10.1145/3583668.3594564(102-112)Online publication date: 19-Jun-2023

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media