TY - GEN
T1 - Leaplist
T2 - 2013 ACM Symposium on Principles of Distributed Computing, PODC 2013
AU - Avni, Hillel
AU - Shavit, Nir
AU - Suissa, Adi
PY - 2013/9/11
Y1 - 2013/9/11
N2 - 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.
AB - 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.
KW - Data-Structures
KW - Range-Queries
KW - Transactional-Memory
UR - http://www.scopus.com/inward/record.url?scp=84883514417&partnerID=8YFLogxK
U2 - 10.1145/2484239.2484254
DO - 10.1145/2484239.2484254
M3 - Conference contribution
AN - SCOPUS:84883514417
SN - 9781450320658
T3 - Proceedings of the Annual ACM Symposium on Principles of Distributed Computing
SP - 299
EP - 308
BT - PODC 2013 - Proceedings of the 2013 ACM Symposium on Principles of Distributed Computing
Y2 - 22 July 2013 through 24 July 2013
ER -