The string B-tree: a new data structure for string search in external memory and its applications
Journal of the ACM (JACM)
Skip Lists: A Probabilistic Alternative to Balanced Trees
WADS '89 Proceedings of the Workshop on Algorithms and Data Structures
B-trees, shadowing, and clones
ACM Transactions on Storage (TOS)
A simple optimistic skiplist algorithm
SIROCCO'07 Proceedings of the 14th international conference on Structural information and communication complexity
Transactional predication: high-performance concurrent sets and maps for STM
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Concurrent tries with efficient non-blocking snapshots
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Towards consistency oblivious programming
OPODIS'11 Proceedings of the 15th international conference on Principles of Distributed Systems
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Hi-index | 0.00 |
We introduce Leaplist, a concurrent data-structure that is tailored to provide linearizable range queries. A lookup in Leaplist takes O (log n) and is comparable to a balanced binary search tree or to a Skiplist. However, in Leaplist, each node holds up-to K immutable key-value pairs, so collecting a linearizable range is K times faster than the same operation performed non-linearizably on a Skiplist. We show how software transactional memory support in a commercial compiler helped us create an efficient lock-based implementation of Leaplist. We used this STM to implement short transactions which we call Locking Transactions (LT), to acquire locks, while verifying that the state of the data-structure is legal, and combine them with a transactional Consistency Oblivious Programming (COP) [2] mechanism to enhance data structure traversals. We compare Leaplist to prior implementations of Skiplists, and show that while updates in the Leaplist are slower, lookups are somewhat faster, and for range-queries the Leaplist outperforms the Skiplist's non-linearizable range query operations by an order of magnitude. We believe that this data structure and its performance would have been impossible to obtain without the STM support.