Concurrent Search Tree by Lazy Splaying Yehuda Afek Boris Korenfeld Adam Morrison School of Computer Science Tel Aviv University Abstract In many search tree (maps) applications the distribution of items accesses is non-uniform, with some popular items accessed more frequently than others. Traditional self-adjusting tree algorithms adapt to the access pattern, but are not suitable for a concurrent setting since they constantly move items to the tree's root, turning the root into a sequential hot spot. Here we present lazy splaying, a new search tree algorithm that moves frequently accessed items close to the root without making the root a bottleneck. Lazy splaying is fast and highly scalable making at most one local adjustment to the tree on each access. It can be combined with other sequential or concurrent search tree algorithms. In the experimental evaluation we integrated lazy splaying into Bronson et. al.'s optimistic search tree implementation to get a concurrent highly scalable search tree, and show that it significantly improves performance on realistic non-uniform access patterns, while only slightly degrading performance for uniform accesses. Contact Author: Yehuda Afek Phone: +972-544-797322 Fax: +972-3-640-9357 Email:
[email protected] Post: School of Computer Science, Tel Aviv University, Tel Aviv 69978, Israel 1 Introduction It is common knowledge, in sequential computing, that although self-adjusting binary search tress (BST), e.g., Splay tree, are theoretically better than balanced BST, e.g., AVL and red-black tree, specially on skewed access sequences, in practice red-black and AVL trees outperform even on skewed sequences [4] (except for extremely skewed sequences).