CBTree: a practical concurrent self-adjusting search tree

  • Authors:
  • Yehuda Afek;Haim Kaplan;Boris Korenfeld;Adam Morrison;Robert E. Tarjan

  • Affiliations:
  • Blavatnik School of Computer Science, Tel Aviv University, Israel;Blavatnik School of Computer Science, Tel Aviv University, Israel;Blavatnik School of Computer Science, Tel Aviv University, Israel;Blavatnik School of Computer Science, Tel Aviv University, Israel;Princeton University and HP Labs, China

  • Venue:
  • DISC'12 Proceedings of the 26th international conference on Distributed Computing
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present the CBTree, a new counting-based self-adjusting binary search tree that, like splay trees, moves more frequently accessed nodes closer to the root. After m operations on n items, c of which access some item v, an operation on v traverses a path of length $\mathcal{O}(\log\dfrac{m}{c})$ while performing few if any rotations. In contrast to the traditional self-adjusting splay tree in which each accessed item is moved to the root through a sequence of tree rotations, the CBTree performs rotations infrequently (an amortized subconstant o(1) per operation if m≫n), mostly at the bottom of the tree. As a result, the CBTree scales with the amount of concurrency. We adapt the CBTree to a multicore setting and show experimentally that it improves performance compared to existing concurrent search trees on non-uniform access sequences derived from real workloads.