Abstract
We introduce OPTIK, a new practical design pattern for designing and implementing fast and scalable concurrent data structures. OPTIK relies on the commonly-used technique of version numbers for detecting conflicting concurrent operations. We show how to implement the OPTIK pattern using the novel concept of OPTIK locks. These locks enable the use of version numbers for implementing very efficient optimistic concurrent data structures. Existing state-of-the-art lock-based data structures acquire the lock and then check for conflicts. In contrast, with OPTIK locks, we merge the lock acquisition with the detection of conflicting concurrency in a single atomic step, similarly to lock-free algorithms. We illustrate the power of our OPTIK pattern and its implementation by introducing four new algorithms and by optimizing four state-of-the-art algorithms for linked lists, skip lists, hash tables, and queues. Our results show that concurrent data structures built using OPTIK are more scalable than the state of the art.
- M. Aguilera, A. Merchant, M. Shah, A. Veitch, and C. Karamanolis. Sinfonia: A New Paradigm for Building Scalable Distributed Systems. SOSP '07. Google Scholar
Digital Library
- M. Arbel and H. Attiya. Concurrent Updates with RCU: Search Tree as an Example. PODC '14. Google Scholar
Digital Library
- M. Arbel and A. Morrison. Predicate RCU: An RCU for Scalable Concurrent Updates. PPoPP '15. Google Scholar
Digital Library
- N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. A Practical Concurrent Binary Search Tree. PPoPP '10. Google Scholar
Digital Library
- C. Cascaval, C. Blundell, M. Michael, H. W. Cain, P. Wu, S. Chiras, and S. Chatterjee. Software Transactional Memory: Why Is It Only a Research Toy? ACM Queue '08. Google Scholar
Digital Library
- L. Dalessandro, M. F. Spear, and M. L. Scott. NOrec: Streamlining STM by Abolishing Ownership Records. PPoPP '10. Google Scholar
Digital Library
- T. David, R. Guerraoui, and V. Trigonakis. Everything You Always Wanted to Know About Synchronization but Were Afraid to Ask. SOSP '13. Google Scholar
Digital Library
- T. David, R. Guerraoui, and V. Trigonakis. Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures. ASPLOS '15. Google Scholar
Digital Library
- D. Dice, O. Shalev, and N. Shavit. Transactional Locking II. DISC '06. Google Scholar
Digital Library
- D. Drachsler, M. Vechev, and E. Yahav. Practical Concurrent Binary Search Trees via Logical Ordering. PPoPP '14. Google Scholar
Digital Library
- A. Dragojević and T. Harris. STM in the Small: Trading Generality for Performance in Software Transactional Memory. EuroSys '12. Google Scholar
Digital Library
- A. Dragojević, D. Narayanan, O. Hodson, and M. Castro. FaRM: Fast Remote Memory. NSDI '14. Google Scholar
Digital Library
- F. Ellen, P. Fatourou, E. Ruppert, and F. van Breugel. Non-blocking Binary Search Trees. PODC '10. Google Scholar
Digital Library
- P. Felber, C. Fetzer, and T. Riegel. Dynamic Performance Tuning of Word-based Software Transactional Memory. PPoPP '08. Google Scholar
Digital Library
- K. Fraser. Practical Lock-Freedom. PhD thesis, University of Cambridge, 2004.Google Scholar
- V. Gramoli. More than You Ever Wanted to Know about Synchronization. PPoPP '15. Google Scholar
Digital Library
- V. Gramoli, P. Kuznetsov, S. Ravi, and D. Shang. Brief Announcement: A Concurrency-Optimal List-Based Set. DISC '15.Google Scholar
- R. Guerraoui and M. Kapalka. On the Correctness of Transactional Memory. PPoPP '08. Google Scholar
Digital Library
- T. Harris. A Pragmatic Implementation of Non-blocking Linked Lists. DISC '01. Google Scholar
Digital Library
- T. E. Hart, P. E. McKenney, A. D. Brown, and J. Walpole. Performance of Memory Reclamation for Lockless Synchronization. JPDC '07. Google Scholar
Digital Library
- B. He, W. N. Scherer, and M. L. Scott. Preemption Adaptivity in Time-Published Queue-Based Spin Locks. HiPC '05. Google Scholar
Digital Library
- S. Heller, M. Herlihy, V. Luchangco, M. Moir, W. N. Scherer, and N. Shavit. A Lazy Concurrent List-Based Set Algorithm. OPODIS '05. Google Scholar
Digital Library
- D. Hendler, I. Incze, N. Shavit, and M. Tzafrir. Flat Combining and the Synchronization-parallelism Tradeoff. SPAA '10. Google Scholar
Digital Library
- D. Hendler, N. Shavit, and L. Yerushalmi. A Scalable Lock-free Stack Algorithm. SPAA '04. Google Scholar
Digital Library
- M. Herlihy. Wait-Free Synchronization. TOPLAS '91.Google Scholar
- M. Herlihy and J. Moss. Transactional Memory: Architectural Support for Lock-free Data Structures. ISCA '93. Google Scholar
Digital Library
- M. Herlihy and N. Shavit. The Art of Multiprocessor Programming, Revised First Edition. 2012. Google Scholar
Digital Library
- M. Herlihy and J. Wing. Linearizability: A Correctness Condition for Concurrent Objects. TOPLAS '90. Google Scholar
Digital Library
- M. Herlihy, Y. Lev, V. Luchangco, and N. Shavit. A Simple Optimistic Skiplist Algorithm. SIROCCO '07. Google Scholar
Digital Library
- Intel. Intel 64 and IA-32 Architectures Software Developer's Manual, Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B and 3C. 2015.Google Scholar
- S. Kashyap, C. Min, and T. Kim. Scalability in the Clouds!: A Myth or Reality? APSys '15. Google Scholar
Digital Library
- H.-T. Kung and J. Robinson. On Optimistic Methods for Concurrency Control. TODS '81. Google Scholar
Digital Library
- C. Lameter. Effective Synchronization on Linux/NUMA Systems. Gelato Federation Meeting '05.Google Scholar
- D. Lea. Overview of Package util.concurrent Release 1.3.4. http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html, 2003.Google Scholar
- P. E. McKenney and J. D. Slingwine. Read-copy Update: Using Execution History to Solve Concurrency Problems. PDCS '98.Google Scholar
- J. M. Mellor-Crummey and M. L. Scott. Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors. TOCS '91. Google Scholar
Digital Library
- M. M. Michael. High Performance Dynamic Lock-free Hash Tables and List-based Sets. SPAA '02. Google Scholar
Digital Library
- M. M. Michael. Hazard Pointers: Safe Memory Reclamation for Lock-free Objects. PDS '04. Google Scholar
Digital Library
- M. M. Michael and M. L. Scott. Simple, Fast, and Practical Non-blocking and Blocking Concurrent Queue Algorithms. PODC '96. Google Scholar
Digital Library
- A. Morrison and Y. Afek. Fast Concurrent Queues for x86 Processors. PPoPP '13. Google Scholar
Digital Library
- A. Natarajan and N. Mittal. Fast Concurrent Lock-free Binary Search Trees. PPoPP '14. Google Scholar
Digital Library
- Oracle. ConcurrentHashMap in Java Docs. https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html, 2015.Google Scholar
- W. Pugh. Concurrent Maintenance of Skip Lists. Technical report, 1990. Google Scholar
Digital Library
- R. Rajwar and J. Goodman. Speculative Lock Elision: Enabling Highly Concurrent Multithreaded Execution. MICRO '01. Google Scholar
Digital Library
- A. Roy, S. Hand, and T. Harris. A Runtime System for Software Lock Elision. EuroSys '09. Google Scholar
Digital Library
- N. Shavit and D. Touitou. Software Transactional Memory. PODC '97. Google Scholar
Digital Library
- H. Sundell and P. Tsigas. Fast and Lock-free Concurrent Priority Queues for Multi-thread Systems. JPDC '05. Google Scholar
Digital Library
- R. Treiber. Systems Programming: Coping with Parallelism. Technical report, 1986.Google Scholar
- P. Tsigas and Y. Zhang. A Simple, Fast and Scalable Non-blocking Concurrent FIFO Queue for Shared Memory Multiprocessor Systems. SPAA '01. Google Scholar
Digital Library
- L. Xiang and M. L. Scott. Software Partitioning of Hardware Transactions. PPoPP '15. Google Scholar
Digital Library
Recommendations
Optimistic concurrency with OPTIK
PPoPP '16: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingWe introduce OPTIK, a new practical design pattern for designing and implementing fast and scalable concurrent data structures. OPTIK relies on the commonly-used technique of version numbers for detecting conflicting concurrent operations. We show how ...
Distributed optimistic concurrency control with reduced rollback
Concurrency control algorithms have traditionally been based on locking and timestamp ordering mechanisms. Recently optimistic schemes have been proposed. In this paper a distributed, multi-version, optimistic concurrency control scheme is described ...
Is the optimism in optimistic concurrency warranted?
HOTOS'07: Proceedings of the 11th USENIX workshop on Hot topics in operating systemsOptimistic synchronization allows concurrent execution of critical sections while performing dynamic conflict detection and recovery. Optimistic synchronization will increase performance only if critical regions are data independent--concurrent critical ...






Comments