To date, all concurrent search structures that can support predecessor queries have had depth logarithmic in m, the number of elements. This paper introduces the SkipTrie, a new concurrent search structure supporting predecessor queries in amortized expected O(log log u + c) steps, insertions and deletions in O(c log log u), and using O(m) space, where u is the size of the key space and c is the contention during the recent past. The SkipTrie is a probabilisticallybalanced version of a y-fast trie consisting of a very shallow skiplist from which randomly chosen elements are inserted into a hash-table based x-fast trie. By inserting keys into the x-fast-trie probabilistically, we eliminate the need for rebalancing, and can provide a lock-free linearizable implementation. To the best of our knowledge, our proof of the amortized expected performance of the SkipTrie is the first such proof for a tree-based data structure.
For concurrent search data structures ensuring predecessor queries, the work that is closest to ours is the Skip-Trie REF , which allows predecessor queries in amortized expected O(log log u + γ ) steps, and insertions and deletions in O(γ log log u) time, where u is the size of the key space, and γ is an upper bound on contention.
The SkipTrie: low-depth concurrent search without rebalancing
PODC '13
Computer Science