CBTree: A practical concurrent self-adjusting search tree

Yehuda Afek, Haim Kaplan, Boris Korenfeld, Adam Morrison, Robert E. Tarjan

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

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 O(log 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.

Original languageEnglish
Title of host publicationDistributed Computing - 26th International Symposium, DISC 2012, Proceedings
Pages1-15
Number of pages15
DOIs
StatePublished - 2012
Event26th International Symposium on Distributed Computing, DISC 2012 - Salvador, Brazil
Duration: 16 Oct 201218 Oct 2012

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume7611 LNCS

Conference

Conference26th International Symposium on Distributed Computing, DISC 2012
Country/TerritoryBrazil
CitySalvador
Period16/10/1218/10/12

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

Dive into the research topics of 'CBTree: A practical concurrent self-adjusting search tree'. Together they form a unique fingerprint.

Cite this