#### DMCA

## Non-blocking binary search trees (2010)

Venue: | In Proc. ACM PODC |

Citations: | 20 - 2 self |

### Citations

851 | Wait-Free Synchronization.
- Herlihy
- 1991
(Show Context)
Citation Context ... of any data structure, including BSTs. However, because of their generality, they are usually less efficient than implementations tailor-madefor aspecific data structure. Some universalconstructions =-=[12]-=- put all operationsinto a queue and the operations are applied sequentially, in the order they appear in the queue. This precludes concurrency. In other universal constructions [11, 13] a process copi... |

350 | A methodology for implementing highly concurrent objects.
- Herlihy
- 1993
(Show Context)
Citation Context ...ersalconstructions [12] put all operationsinto a queue and the operations are applied sequentially, in the order they appear in the queue. This precludes concurrency. In other universal constructions =-=[11, 13]-=- a process copies the data structure (or the parts of it that will change and any parts that directly or indirectly point to them), applies its operation to the copy, and then tries to update the rele... |

255 |
A dichromatic framework for balanced trees.
- Guibas, Sedgewick
- 1978
(Show Context)
Citation Context ...for which they are searching, when updates are happening concurrently. 2 Related Work There are implementations of BSTs using locks that support concurrent accesses. For example, Guibas and Sedgewick =-=[8]-=- gave a balanced BST by uncoupling rebalancing operations from updates, as did Kung andLehman [16], who also proved their implementation correct. Nurmi and Soisalon-Soininen [21] introduced chromatic... |

192 |
Practical lock-freedom.
- Fraser
- 2004
(Show Context)
Citation Context ...de performance, when nodes are deleted. Our implementation is also conceptually simpler than Valois’s, requiring one tree pointer to be changed for each update (rather than four). In his Ph.D. thesis =-=[7]-=-, Fraser wrote, “CAS is too difficult to apply directly” to the implementation of BSTs. Instead, he gave a non-blocking implementation of a node-oriented BST using multi-word CAS operationsthatcanatom... |

149 | Cache-oblivious B-trees.
- Bender, Demaine, et al.
- 2000
(Show Context)
Citation Context ...mplementation, but did not provide a proof of correctness. He described how to build multi-word CAS operations from single-word CAS, but this construction involves substantial overhead. Bender et al. =-=[2]-=- described a non-blocking implementation of a cache-oblivious B-tree from LL/SC operations, but a full version of this implementation has not yet appeared. Universal constructions can be used to provi... |

108 | Lock-free linked lists using compare-and-swap.
- Valois
- 1995
(Show Context)
Citation Context ...non-blocking implementations of arrays and linked lists (as well as data structures that can be built from them, like stacks, queues, hash tables, and skip lists) in shared-memory distributed systems =-=[4, 5, 9, 14, 20, 22, 24]-=-. The binary search tree (BST) [15] is one of the most fundamental sequential data structures, but comparatively little has been done towards providing non-blocking implementations of it. In the docum... |

103 | High performance dynamic lock-free hash tables and list-based sets.
- Michael
- 2002
(Show Context)
Citation Context ...non-blocking implementations of arrays and linked lists (as well as data structures that can be built from them, like stacks, queues, hash tables, and skip lists) in shared-memory distributed systems =-=[4, 5, 9, 14, 20, 22, 24]-=-. The binary search tree (BST) [15] is one of the most fundamental sequential data structures, but comparatively little has been done towards providing non-blocking implementations of it. In the docum... |

99 |
III, “Software transactional memory for dynamic-sized data structures,” in PODC,
- Herlihy, Luchangco, et al.
- 2003
(Show Context)
Citation Context ...very node, so no concurrency is possible using this approach, even for updates on separate parts of the tree. Similarly, shared BST implementations can be obtained using software transactional memory =-=[6, 7, 10]-=-. However, current implementations of transactional memory either satisfy weaker progress guarantees (like obstruction-freedom) or incur high overhead when built from single-word CAS. 3 Implementation... |

75 |
and Nir Shavit. The Art of Multiprocessor Programming
- Herlihy
- 2008
(Show Context)
Citation Context ...non-blocking implementations of arrays and linked lists (as well as data structures that can be built from them, like stacks, queues, hash tables, and skip lists) in shared-memory distributed systems =-=[4, 5, 9, 14, 20, 22, 24]-=-. The binary search tree (BST) [15] is one of the most fundamental sequential data structures, but comparatively little has been done towards providing non-blocking implementations of it. In the docum... |

74 |
Pointers: Safe Memory Reclamation for Lock-Free Objects,”
- “Hazard
- 2004
(Show Context)
Citation Context ...atural question is whether Find can be made wait-free without a significant reduction in efficiency. Effective management of memory is important for achieving reasonable space bounds. Hazard pointers =-=[19]-=- may be applicable to a slightly modified version of our implementation, where a Search helps Delete operations to perform their dchild CAS steps to remove from the tree marked nodes that the Search e... |

74 |
Lock-Free Data Structures.
- Valois
- 1995
(Show Context)
Citation Context ...tree implementations mentioned above, a process may have to repeatedly help many other operations progress down the tree, which could result in a very long delay until any operation completes. Valois =-=[23, 24]-=- briefly sketched a possible non-blocking implementation of a node-oriented BST using registers and CAS objects, based on his non-blocking implementation of a linked list, but a full description of th... |

55 | Concurrent manipulation of binary search trees.
- Kung, Lehman
- 1980
(Show Context)
Citation Context ...plementations of BSTs using locks that support concurrent accesses. For example, Guibas and Sedgewick [8] gave a balanced BST by uncoupling rebalancing operations from updates, as did Kung andLehman =-=[16]-=-, who also proved their implementation correct. Nurmi and Soisalon-Soininen [21] introduced chromatic trees, a leaf-oriented version of red-black trees with relaxed balance conditions and uncoupled up... |

24 |
A method for implementing lock-free data structures
- Barnes
- 1993
(Show Context)
Citation Context ...ng the data structure must lock a number of nearby nodes. This can block searches and other updates from proceeding until the process removes the locks. The co-operative technique described by Barnes =-=[1]-=- is a method for converting locked-based implementations into non-blocking ones. His idea is to replace locks owned by processes with locks owned by operations. When acquiring a lock on a part of the ... |

22 |
Some combinatorial properties of certain trees with applications to searching and sorting
- Hibbard
- 1962
(Show Context)
Citation Context ...(as well as data structures that can be built from them, like stacks, queues, hash tables, and skip lists) in shared-memory distributed systems [4, 5, 9, 14, 20, 22, 24]. The binary search tree (BST) =-=[15]-=- is one of the most fundamental sequential data structures, but comparatively little has been done towards providing non-blocking implementations of it. In the documentation for the ConcurrentSkipList... |

22 |
Evolution of random search trees. Wiley-Interscience Series in Discrete Mathematics and Optimization
- Mahmoud
- 1992
(Show Context)
Citation Context ...ance to other dictionary implementations. There are results (in the sequential setting) proving that the expected time for operations on randomly constructed BSTs is logarithmic in the number of keys =-=[18]-=-. 33Such bounds for random concurrent updates are not as well-studied. In sequential systems, there are many techniques for maintaining a balanced BST that guarantee logarithmic height. One important... |

10 | Amortization results for chromatic search trees, with an application to priority queues
- BOYAR, FAGERBERG, et al.
- 1997
(Show Context)
Citation Context ...alon-Soininen [21] introduced chromatic trees, a leaf-oriented version of red-black trees with relaxed balance conditions and uncoupled update and rebalancing operations. Boyar, Fagerberg, and Larsen =-=[3]-=- modified some of the rebalancing operations of chromatic trees, improving their performance, and gave a proof of correctness of their locking scheme. However, in all of these implementations, a proce... |

10 | A universal construction for wait-free transaction friendly data structures
- Chuong, Ellen, et al.
- 2010
(Show Context)
Citation Context |

5 |
AND ELJAS SOISALON-SOININEN, Chromatic binary search trees: A structure for concurrent rebalancing
- NURMI
- 1996
(Show Context)
Citation Context ... Guibas and Sedgewick [8] gave a balanced BST by uncoupling rebalancing operations from updates, as did Kung andLehman [16], who also proved their implementation correct. Nurmi and Soisalon-Soininen =-=[21]-=- introduced chromatic trees, a leaf-oriented version of red-black trees with relaxed balance conditions and uncoupled update and rebalancing operations. Boyar, Fagerberg, and Larsen [3] modified some ... |

5 |
Philippas Tsigas. Scalable and lock-free concurrent dictionaries
- Sundell
- 2004
(Show Context)
Citation Context |

1 |
Concurrent programming without locks
- InProc
- 2004
(Show Context)
Citation Context |

1 |
Apragmaticimplementation ofnon-blockinglinked-lists
- Harris
- 2001
(Show Context)
Citation Context |

1 |
Java Concurrent Skip List Map. Available from http://www.java2s.com/Code/Java/ Collections-Data-Structure/ConcurrentSkipListMap.htm
- Lea
(Show Context)
Citation Context ...ial data structures, but comparatively little has been done towards providing non-blocking implementations of it. In the documentation for the ConcurrentSkipListMap class of the Java standard library =-=[17]-=-, Lea wrote, “you might wonder why this [non-blocking dictionary implementation using skiplists] doesn’t use some kind of search tree instead, which would support somewhat faster search operations. Th... |