Computer Science > Distributed, Parallel, and Cluster Computing
[Submitted on 8 Apr 2025]
Title:Fixing non-blocking data structures for better compatibility with memory reclamation schemes
View PDF HTML (experimental)Abstract:We present a new technique, Safe Concurrent Optimistic Traversals (SCOT), to address a well-known problem with Hazard Pointers (HP) related to optimistic traversals. Unlike Epoch-Based Reclamation (EBR), HP enables strong robustness properties but lacks support for some data structures such as Harris' original list and Natarajan-Mittal tree, which can slow down operations substantially (e.g., when replacing with Harris-Michael list) or make correct implementations impossible altogether (e.g., Natarajan-Mittal tree).
Recent works propose replacing HP with another robust memory reclamation schemes that support optimistic traversals such as HP++. However, HP++ is generally slower than HP, has undesirable applicability trade-offs, and more complex implementation, among other issues. We propose a different method which keeps HP intact but instead relies on data structure adaptations. Moreover, our method applies to other recent (and faster) robust reclamation schemes such as Hazard Eras (HE) and Interval-Based Reclamation (IBR), which are HP-like and have similar problems related to optimistic traversals.
We implement two fundamentally different data structures: Harris' list and Natarajan-Mittal tree. Our method enables their first correct implementations with optimistic traversals with HP and IBR. Our method is also directly applicable to other data structures which extend Harris' list, e.g., skip lists and hash maps. We observe similar performance benefits of Harris' original list (vs. Harris-Michael list) that were previously only available to EBR users. As we discuss in the paper, our Natarajan-Mittal tree is the first bug-free implementation for HP and IBR; it achieves very high throughput, comparable to that of EBR.
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Connected Papers (What is Connected Papers?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
alphaXiv (What is alphaXiv?)
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Hugging Face (What is Huggingface?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.