ABSTRACT
Read copy update (RCU) is a novel synchronization mechanism, in which the burden of synchronization falls completely on the updaters, by having them wait for all pre-existing readers to finish their read-side critical section. This paper presents citrus, a concurrent binary search tree (BST) with a wait-free Contains operation, using RCU synchronization and fine-grained locking for synchronization among updaters. This is the first RCU-based data structure that allows concurrent updaters. While there are methodologies for using RCU to coordinate between readers and updaters, they do not address the issue of coordination among updaters, and indeed, all existing RCU-based data structures rely on coarse-grained synchronization between updaters.
Experimental evaluation shows that \citrus beats previous RCU-based search trees, even under mild update contention, and compares well with the best-known concurrent dictionaries.
- Y. Afek, H. Kaplan, B. Korenfeld, A. Morrison, and R. E. Tarjan. CBTree: A practical concurrent self-adjusting search tree. DISC 2012, pp. 1--15. Google ScholarDigital Library
- H. Attiya, R. Guerraoui, and E. Ruppert. Partial snapshot objects. SPAA 2008, pp. 336--343.% Google ScholarDigital Library
- %R. Bayer and M. Schkolnick. Concurrency of operations on b-trees. In M. Stonebraker (ed.), Readings in database systems, pages% 129--139. Morgan Kaufmann, 1988. Google ScholarDigital Library
- A. Braginsky and E. Petrank. A lock-free B+ tree. SPAA 2012, pp. 58--67, 2012. Google ScholarDigital Library
- N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. A practical concurrent binary search tree. PPoPP 2010, pp. 257--268. Google ScholarDigital Library
- T. Brown, F. Ellen, and E. Ruppert. A general technique for non-blocking trees. PPoPP 2014, pp. 329--342. Google ScholarDigital Library
- A. T. Clements, M. F. Kaashoek, and N. Zeldovich. Scalable address spaces using RCU balanced trees. ASPLOS 2012, pp. 199--210. Google ScholarDigital Library
- T. Crain, V. Gramoli, and M. Raynal. A contention-friendly binary search tree. Euro-Par 2010, pp. 229--240. Google ScholarDigital Library
- M. Desnoyers, P. McKenney, A. Stern, M. Dagenais, and J. Walpole. User-level implementations of Read-Copy Update. IEEE Transactions on Parallel and Distributed Systems, 23(2):375--382, 2012. Google ScholarDigital Library
- D. Drachsler, M. Vechev, and E. Yahav. Practical concurrent binary search trees via logical ordering. PPoPP 2014, pp. 343--356. Google ScholarDigital Library
- F. Ellen, P. Fatourou, E. Ruppert, and F. van Breugel. Non-blocking binary search trees. PODC 2010, pp. 131--140.% Google ScholarDigital Library
- K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger. The notions of consistency and predicate locks in a database system. Commun. ACM, 19(11):624--633, Nov. 1976. Google ScholarDigital Library
- K. Fraser. Practical lock-freedom. PhD thesis, University of Cambridge, 2003.Google Scholar
- A. Gotsman, N. Rinetzky, and H. Yang. Verifying concurrent memory reclamation algorithms with grace. ESOP 2013, pp. 249--269. Google ScholarDigital Library
- D. Guniguntala, P. E. McKenney, J. Triplett, and J. Walpole. The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with Linux. IBM Systems Journal, 47(2):221--236, May 2008. Google ScholarDigital Library
- S. Heller, M. Herlihy, V. Luchangco, M. Moir, W. N. Scherer III, and N. Shavit. A lazy concurrent list-based set algorithm. OPODIS 2006, pp. 3--16. Google ScholarDigital Library
- M. Herlihy, Y. Lev, V. Luchangco, and N. Shavit. A simple optimistic skiplist algorithm. SIROCCO 2007, pp. 124--138. Google ScholarDigital Library
- M. Herlihy and J. E. B. Moss. Transactional memory: architectural support for lock-free data structures. SIGARCH Comput. Archit. News, 21(2):289--300, May 1993. Google ScholarDigital Library
- M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst., 12(3):463--492, July 1990. Google ScholarDigital Library
- P. W. Howard, , and J. Walpole. A case for relativistic programming. In ACM workshop on Relaxing Synchronization for Multicore and Manycore Scalability, pp. 33--38, 2012. Google ScholarDigital Library
- P. W. Howard and J. Walpole. Relativistic red-black trees. Concurrency & Computation: Practice & Experience, 2013.Google Scholar
- S. V. Howley and J. Jones. A non-blocking internal binary search tree. SPAA 2012, pp. 161--171. Google ScholarDigital Library
- P. E. McKenney. RCU Linux usage. http://www.rdrop.com/users/paulmck/RCU/linuxusage.html.Google Scholar
- P. E. McKenney. Exploiting Deferred Destruction: An Analysis of Read-Copy-Update Techniques in Operating System kernels. PhD thesis, Oregon State University, 2004. Google ScholarDigital Library
- P. E. McKenney and J. D. Slingwine. Read-copy update: Using execution history to solve concurrency problems. Parallel and Distributed Computing and Systems, pp. 509--518, 1998.Google Scholar
- A. Natarajan and N. Mittal. Fast concurrent lock-free binary search trees. PPoPP 2014, pp. 317--328. Google ScholarDigital Library
- E. Petrank and S. Timnat. Lock-free data-structure iterators. DISC 2013, pp. 224--238.Google ScholarDigital Library
- A. Silberschatz and Z. Kedem. Consistency in hierarchical database systems. J. ACM, 27(1):72--80, 1980. Google ScholarDigital Library
- J. Triplett, P. E. McKenney, and J. Walpole. Scalable concurrent hash tables via relativistic programming. SIGOPS Oper. Syst. Rev., 44(3):102--109, Aug. 2010. Google ScholarDigital Library
- J. Triplett, P. E. McKenney, and J. Walpole. Resizable, scalable, concurrent hash tables. USENIX Annual Technical Conference, 2011. Google ScholarDigital Library
Index Terms
- Concurrent updates with RCU: search tree as an example
Recommendations
Predicate RCU: an RCU for scalable concurrent updates
PPoPP 2015: Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingRead-copy update (RCU) is a shared memory synchronization mechanism with scalable synchronization-free reads that nevertheless execute correctly with concurrent updates. To guarantee the consistency of such reads, an RCU update transitioning the data ...
Predicate RCU: an RCU for scalable concurrent updates
PPoPP '15Read-copy update (RCU) is a shared memory synchronization mechanism with scalable synchronization-free reads that nevertheless execute correctly with concurrent updates. To guarantee the consistency of such reads, an RCU update transitioning the data ...
Are lock-free concurrent algorithms practically wait-free?
STOC '14: Proceedings of the forty-sixth annual ACM symposium on Theory of computingLock-free concurrent algorithms guarantee that some concurrent operation will always make progress in a finite number of steps. Yet programmers prefer to treat concurrent code as if it were wait-free, guaranteeing that all operations always make ...
Comments