TY - JOUR
T1 - The CB tree
T2 - a practical concurrent self-adjusting search tree
AU - Afek, Yehuda
AU - Kaplan, Haim
AU - Korenfeld, Boris
AU - Morrison, Adam
AU - Tarjan, Robert E.
N1 - Publisher Copyright:
© 2014, Springer-Verlag Berlin Heidelberg.
PY - 2014/11/23
Y1 - 2014/11/23
N2 - We present the CB tree, a counting-based self-adjusting binary search tree in which, as in splay trees, more-frequently accessed items move closer to the root. In a sequential execution, after m operations of which c(v) access itema v access of v traverses a path of length O(1+log m/c(v)) while doing few if any rotations. Unlike the original splay tree, in which each access moves the accessed item all the way to the root via a sequence of rotations, accesses in a CB tree do very few rotations, specifically O(n+nlog(m/n), during a sequence of operations of which n are insertions. This is o(1)(subconstant) amortized per operation if m ≫ n. We adapt the CB tree into a scalable concurrent self-adjusting BST. We show experimentally that the concurrent CB tree scales well because it, too, performs few rotations, and therefore self-adjusts without having rotations create a bottleneck. Our evaluation shows that the concurrent CB tree performs better than existing concurrent search trees on non-uniform access sequences derived from real workloads.
AB - We present the CB tree, a counting-based self-adjusting binary search tree in which, as in splay trees, more-frequently accessed items move closer to the root. In a sequential execution, after m operations of which c(v) access itema v access of v traverses a path of length O(1+log m/c(v)) while doing few if any rotations. Unlike the original splay tree, in which each access moves the accessed item all the way to the root via a sequence of rotations, accesses in a CB tree do very few rotations, specifically O(n+nlog(m/n), during a sequence of operations of which n are insertions. This is o(1)(subconstant) amortized per operation if m ≫ n. We adapt the CB tree into a scalable concurrent self-adjusting BST. We show experimentally that the concurrent CB tree scales well because it, too, performs few rotations, and therefore self-adjusts without having rotations create a bottleneck. Our evaluation shows that the concurrent CB tree performs better than existing concurrent search trees on non-uniform access sequences derived from real workloads.
KW - Optimistic concurrency control
KW - Self-adjusting tree
KW - Splay tree
UR - http://www.scopus.com/inward/record.url?scp=85027926177&partnerID=8YFLogxK
U2 - 10.1007/s00446-014-0229-0
DO - 10.1007/s00446-014-0229-0
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:85027926177
SN - 0178-2770
VL - 27
SP - 393
EP - 417
JO - Distributed Computing
JF - Distributed Computing
IS - 6
ER -