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. © 2012 Springer-Verlag.
CITATION STYLE
Afek, Y., Kaplan, H., Korenfeld, B., Morrison, A., & Tarjan, R. E. (2012). CBTree: A practical concurrent self-adjusting search tree. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7611 LNCS, pp. 1–15). https://doi.org/10.1007/978-3-642-33651-5_1
Mendeley helps you to discover research relevant for your work.