Self-adjusting binary search trees
Journal of the ACM (JACM)
Concurrency of operations on B-trees
Readings in database systems
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Skip lists: a probabilistic alternative to balanced trees
Communications of the ACM
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Relaxed Balanced Red-Black Trees
CIAC '97 Proceedings of the Third Italian Conference on Algorithms and Complexity
Binary search trees of bounded balance
STOC '72 Proceedings of the fourth annual ACM symposium on Theory of computing
An analysis of live streaming workloads on the internet
Proceedings of the 4th ACM SIGCOMM conference on Internet measurement
IEEE/ACM Transactions on Networking (TON)
Youtube traffic characterization: a view from the edge
Proceedings of the 7th ACM SIGCOMM conference on Internet measurement
SFCS '80 Proceedings of the 21st Annual Symposium on Foundations of Computer Science
AFIPS '75 Proceedings of the May 19-22, 1975, national computer conference and exposition
A practical concurrent binary search tree
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Non-blocking binary search trees
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
A speculation-friendly binary search tree
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Traffic analysis of a Web proxy caching hierarchy
IEEE Network: The Magazine of Global Internetworking
Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures
A general technique for non-blocking trees
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hi-index | 0.00 |
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.