Leaplist: lessons learned in designing tm-supported range queries

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...

Full description

Bibliographic Details
Main Authors: Avni, Hillel (Author), Suissa, Adi (Author), Shavit, Nir N. (Contributor)
Other Authors: Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science (Contributor)
Format: Article
Language:English
Published: Association for Computing Machinery (ACM), 2014-10-10T15:21:59Z.
Subjects:
Online Access:Get fulltext
LEADER 02247 am a22002413u 4500
001 90890
042 |a dc 
100 1 0 |a Avni, Hillel  |e author 
100 1 0 |a Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science  |e contributor 
100 1 0 |a Shavit, Nir N.  |e contributor 
700 1 0 |a Suissa, Adi  |e author 
700 1 0 |a Shavit, Nir N.  |e author 
245 0 0 |a Leaplist: lessons learned in designing tm-supported range queries 
260 |b Association for Computing Machinery (ACM),   |c 2014-10-10T15:21:59Z. 
856 |z Get fulltext  |u http://hdl.handle.net/1721.1/90890 
520 |a 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. 
520 |a National Science Foundation (U.S.) (Grant CCF-1217921) 
520 |a United States. Dept. of Energy. Office of Advanced Scientific Computing Research (Grant ER26116/DE-SC0008923) 
520 |a Oracle Corporation 
520 |a Intel Corporation 
546 |a en_US 
655 7 |a Article 
773 |t Proceedings of the 2013 ACM symposium on Principles of distributed computing (PODC '13)