Abstract
Operations of concurrent objects often employ optimistic concurrency-control schemes that consist of a traversal followed by a validation step. The validation checks if concurrent mutations interfered with the traversal to determine if the operation should proceed or restart. A fundamental challenge is to discover a necessary and sufficient validation check that has to be performed to guarantee correctness.
In this paper, we show a necessary and sufficient condition for validating traversals in search trees. The condition relies on a new concept of succinct path snapshots, which are derived from and embedded in the structure of the tree. We leverage the condition to design a general lock-free membership test suitable for any search tree. We then show how to integrate the validation condition in update operations of (non-rebalancing) binary search trees, internal and external, and AVL trees. We experimentally show that our new algorithms outperform existing ones.
- Maya Arbel and Hagit Attiya. 2014. Concurrent updates with RCU: search tree as an example. In PODC '14. Google Scholar
Digital Library
- Maya Arbel and Adam Morrison. 2015. Predicate RCU: an RCU for scalable concurrent updates. In PPoPP '15. Google Scholar
Digital Library
- R. Bayer and M. Schkolnick. 1977. Concurrency of operations on B-trees. Acta Informatica 9, 1 (1977). Google Scholar
Digital Library
- Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Bradley C. Kuszmaul. 2005. Concurrent cache-oblivious b-trees. In SPAA '05. Google Scholar
Digital Library
- Luc Bougé, Joaquim Gabarró, Xavier Messeguer, and Nicolas Schabanel. 1998. Height-relaxed AVL rebalancing: A unified, fine-grained approach to concurrent dictionaries. (1998).Google Scholar
- Anastasia Braginsky and Erez Petrank. 2012. A lock-free B+tree. In SPAA '12. Google Scholar
Digital Library
- Nathan G. Bronson, Jared Casper, Hassan Chafi, and Kunle Olukotun. 2010. A practical concurrent binary search tree. In PPoPP '10. Google Scholar
Digital Library
- Trevor Brown, Faith Ellen, and Eric Ruppert. 2014. A General Technique for Non-blocking Trees. In PPoPP '14. Google Scholar
Digital Library
- Tyler Crain, Vincent Gramoli, and Michel Raynal. 2013. A Contention-Friendly Binary Search Tree. In Euro-Par '13. Google Scholar
Digital Library
- Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. 2015. Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures. In ASPLOS '15. Google Scholar
Digital Library
- Simon Doherty, David L. Detlefs, Lindsay Groves, Christine H. Flood, Victor Luchangco, Paul A. Martin, Mark Moir, Nir Shavit, and Guy L. Steele, Jr. 2004. DCAS is Not a Silver Bullet for Nonblocking Algorithm Design. In SPAA '04. Google Scholar
Digital Library
- Dana Drachsler, Martin Vechev, and Eran Yahav. 2014. Practical Concurrent Binary Search Trees via Logical Ordering. In PPoPP '14. Google Scholar
Digital Library
- Dana Drachsler-Cohen and Erez Petrank. 2014. LCD: Local Combining on Demand. In OPODIS '14.Google Scholar
- Faith Ellen, Panagiota Fatourou, Eric Ruppert, and Franck van Breugel. 2010. Non-blocking binary search trees. In PODC '10. Google Scholar
Digital Library
- K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger. 1976. The Notions of Consistency and Predicate Locks in a Database System. Commun. ACM 19, 11 (1976). Google Scholar
Digital Library
- Panagiota Fatourou and Nikolaos D. Kallimanis. 2011. A Highly-efficient Wait-free Universal Construction. In SPAA '11. Google Scholar
Digital Library
- Vincent Gramoli. 2015. More Than You Ever Wanted to Know About Synchronization: Synchrobench, Measuring the Impact of the Synchronization on Concurrent Algorithms. In PPoPP 2015. Google Scholar
Digital Library
- Timothy L. Harris. 2001. A Pragmatic Implementation of Non-blocking Linked-Lists. In DISC '01. Google Scholar
Digital Library
- Steve Heller, Maurice Herlihy, Victor Luchangco, Mark Moir, Bill Scherer, and Nir Shavit. 2005. A Lazy Concurrent List-based Set Algorithm. In OPODIS '05. Google Scholar
Digital Library
- Danny Hendler, Itai Incze, Nir Shavit, and Moran Tzafrir. 2010. Scalable Flat-Combining Based Synchronous Queues. In Distributed Computing. LNCS, Vol. 6343. Google Scholar
Digital Library
- Maurice Herlihy. 1991. Wait-free Synchronization. ACM Trans. Program. Lang. Syst. 13 (1991). Google Scholar
Digital Library
- Shane V. Howley and Jeremy Jones. 2012. A non-blocking internal binary search tree. In SPAA '12. Google Scholar
Digital Library
- Saurabh Kalikar and Rupesh Nasre. 2016. DomLock: A New Multi-granularity Locking Technique for Hierarchies. In Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP '16). Google Scholar
Digital Library
- Zvi Kedem and Abraham Silberschatz. 1981. A characterization of database graphs admitting a simple locking protocol. Acta Informatica 16, 1 (1981). Google Scholar
Digital Library
- A. Natarajan and N. Mittal. 2014. Fast Concurrent Lock-Free Binary Search Trees. In PPoPP '14. Google Scholar
Digital Library
- Nir Shavit. 2011. Data structures in the multicore age. Commun. ACM 54, 3 (2011). Google Scholar
Digital Library
- V. Luchangco Y. Lev, M. Herlihy and N. Shavit. 2006. A Provably Correct Scalable Skiplist. In OPODIS '06.Google Scholar
Index Terms
Practical concurrent traversals in search trees
Recommendations
Practical concurrent traversals in search trees
PPoPP '18: Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingOperations of concurrent objects often employ optimistic concurrency-control schemes that consist of a traversal followed by a validation step. The validation checks if concurrent mutations interfered with the traversal to determine if the operation ...
Practical concurrent binary search trees via logical ordering
PPoPP '14: Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programmingWe present practical, concurrent binary search tree (BST) algorithms that explicitly maintain logical ordering information in the data structure, permitting clean separation from its physical tree layout. We capture logical ordering using intervals, ...
Practical concurrent binary search trees via logical ordering
PPoPP '14We present practical, concurrent binary search tree (BST) algorithms that explicitly maintain logical ordering information in the data structure, permitting clean separation from its physical tree layout. We capture logical ordering using intervals, ...







Comments