ABSTRACT
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.
- Gcc version 4.7.0, (http://gcc.gnu.org/gcc-4.7/), Apr. 2012.Google Scholar
- Y. Afek, H. Avni, and N. Shavit. Towards consistency oblivious programming. In OPODIS, pages 65--79, 2011. Google ScholarDigital Library
- A. Braginsky and E. Petrank. A lock-free b+tree. In SPAA, pages 58--67, 2012. Google ScholarDigital Library
- N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. Transactional predication: high-performance concurrent sets and maps for stm. In PODC, pages 6--15, 2010. Google ScholarDigital Library
- T. Brown and H. Avni. Range queries in non-blocking k-ary search trees. In OPODIS, 2012.Google ScholarCross Ref
- L. Dalessandro and M. L. Scott. Strong isolation is a weak idea. In TRANSACT '09: 4th Workshop on Transactional Computing, feb 2009.Google Scholar
- P. Ferragina and R. Grossi. The string b-tree: a new data structure for string search in external memory and its applications. J. ACM, pages 236--280, 1999. Google ScholarDigital Library
- K. Fraser. Practical lock freedom. PhD thesis, Cambridge University Computer Laboratory, 2003.Google Scholar
- M. Herlihy, Y. Lev, V. Luchangco, and N. Shavit. A simple optimistic skiplist algorithm. In Proceedings of the 14th international conference on Structural information and communication complexity, pages 124--138, 2007. Google ScholarDigital Library
- A. Prokopec, N. G. Bronson, P. Bagwell, and M. Odersky. Concurrent tries with efficient non-blocking snapshots. In Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, PPoPP '12, pages 151--160, 2012. Google ScholarDigital Library
- W. Pugh. Skip lists: A probabilistic alternative to balanced trees. In WADS, pages 437--449, 1989. Google ScholarDigital Library
- O. Rodeh. B-trees, shadowing, and clones. Trans. Storage, 3(4):2:1--2:27, Feb. 2008. Google ScholarDigital Library
Index Terms
- Leaplist: lessons learned in designing tm-supported range queries
Recommendations
Brief Announcement: 2D-Stack -- A Scalable Lock-Free Stack Design that Continuously Relaxes Semantics for Better Performance
PODC '18: Proceedings of the 2018 ACM Symposium on Principles of Distributed ComputingWe briefly describe an efficient lock-free concurrent stack design with tunable and tenable relaxed semantics to allow for better performance. The design is tunable and allow for a continuous monotonic trade of weaker semantics for better throughput ...
Comments