Affiliation:
1. University of Toronto, Toronto, ON, Canada
2. York University, Toronto, ON, Canada
Abstract
We describe a general technique for obtaining provably correct, non-blocking implementations of a large class of tree data structures where pointers are directed from parents to children. Updates are permitted to modify any contiguous portion of the tree atomically. Our non-blocking algorithms make use of the LLX, SCX and VLX primitives, which are multi-word generalizations of the standard LL, SC and VL primitives and have been implemented from single-word CAS. To illustrate our technique, we describe how it can be used in a fairly straightforward way to obtain a non-blocking implementation of a chromatic tree, which is a relaxed variant of a red-black tree. The height of the tree at any time is O(c + log n), where n is the number of keys and c is the number of updates in progress. We provide an experimental performance analysis which demonstrates that our Java implementation of a chromatic tree rivals, and often significantly outperforms, other leading concurrent dictionaries.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
13 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Lock-free Binary Trie;2024 IEEE 44th International Conference on Distributed Computing Systems (ICDCS);2024-07-23
2. Expediting Hazard Pointers with Bounded RCU Critical Sections;Proceedings of the 36th ACM Symposium on Parallelism in Algorithms and Architectures;2024-06-17
3. Applying Hazard Pointers to More Concurrent Data Structures;Proceedings of the 35th ACM Symposium on Parallelism in Algorithms and Architectures;2023-06-17
4. MedusaVM: Decentralizing Virtual Memory System for Multithreaded Applications on Many-core;Algorithms and Architectures for Parallel Processing;2018
5. The Power of Choice in Priority Scheduling;Proceedings of the ACM Symposium on Principles of Distributed Computing;2017-07-25