ABSTRACT
Lock-free data objects offer several advantages over their blocking counterparts, such as being immune to deadlocks and convoying and, more importantly, being highly concurrent. However, composing the operations they provide into larger atomic operations, while still guaranteeing efficiency and lock-freedom, is a challenging algorithmic task.
We present a lock-free methodology for composing highly concurrent linearizable objects together by unifying their linearization points. This makes it possible to relatively easily introduce atomic lock-free move operations to a wide range of concurrent objects. Experimental evaluation has shown that the operations originally supported by the data objects keep their performance behavior under our methodology.
- J. H. Anderson and M. Moir. Universal Constructions for Multi-Object Operations. In Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, pages 184--193, 1995. Google ScholarDigital Library
- J. H. Anderson, S. Ramamurthy, and R. Jain. Implementing Wait-Free Objects on Priority-Based Systems. In PODC '97: Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing, pages 229--238, 1997. Google ScholarDigital 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? Queue, 6(5):46--58, 2008. Google ScholarDigital Library
- D. Cederman and P. Tsigas. Supporting Lock-Free Composition of Concurrent Data Objects. Computing Research Repository, abs/0910.0366, 2009.Google Scholar
- S. Doherty, D. L. Detlefs, L. Groves, C. H. Flood, V. Luchangco, P. A. Martin, M. Moir, N. Shavit, and G. L. Steele, Jr. DCAS is not a Silver Bullet for Nonblocking Algorithm Design. In SPAA '04: Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures, pages 216--224, 2004. Google ScholarDigital Library
- S. Doherty, M. Herlihy, V. Luchangco, and M. Moir. Bringing Practical Lock-Free Synchronization to 64-bit Applications. In PODC '04: Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing, pages 31--39, 2004. Google ScholarDigital Library
- M. Fomitchev and E. Ruppert. Lock-free linked lists and skip lists. In PODC '04: Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing, pages 50--59, 2004. Google ScholarDigital Library
- A. Gidenstam, M. Papatriantafilou, and P. Tsigas. Allocating Memory in a Lock-Free Manner. In ESA '05: Proceedings of the 13th Annual European Symposium on Algorithms, pages 329--342, 2005. Google ScholarDigital Library
- A. Gidenstam, M. Papatriantafilou, and P. Tsigas. NBmalloc: Allocating Memory in a Lock-Free Manner. Algorithmica, 2009.Google Scholar
- P. H. Ha and P. Tsigas. Reactive Multi-Word Synchronization for Multiprocessors. In Proceedings of the 12th International Conference on Parallel Architectures and Compilation Techniques, pages 184--193, 2003. Google ScholarDigital Library
- T. Harris. A Pragmatic Implementation of Non-blocking Linked-Lists. In DISC '01: Proceedings of the 15th International Conference on Distributed Computing, pages 300--314, 2001. Google ScholarDigital Library
- T. Harris, K. Fraser, and I. A. Pratt. A Practical Multi-word Compare-and-Swap Operation. In DISC '02: Proceedings of the 16th International Conference on Distributed Computing, pages 265--279, 2002. Google ScholarDigital Library
- T. Harris, S. Marlow, S. Peyton-Jones, and M. P. Herlihy. Composable Memory Transactions. In PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 48--60, 2005. Google ScholarDigital Library
- T. L. Harris. A pragmatic implementation of non-blocking linked-lists. In DISC '01: Proceedings of the 15th International Conference on Distributed Computing, pages 300--314, 2001. Google ScholarDigital Library
- M. P. Herlihy. A Methodology for Implementing Highly Concurrent Data Objects. ACM Transactions on Programming Languages and Systems, 15(5):745--770, 1993. Google ScholarDigital Library
- M. P. Herlihy and J. M. Wing. Linearizability: a Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems, 12(3):463--492, 1990. Google ScholarDigital Library
- Intel. Threading Building Blocks, 2009.Google Scholar
- A. Israeli and L. Rappoport. Disjoint-Access-Parallel Implementations of Strong Shared Memory Primitives. In PODC '94: Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing, pages 151--160, 1994. Google ScholarDigital Library
- J. Larus and C. Kozyrakis. Transactional Memory. Communications of the ACM, 51(7):80--88, 2008. Google ScholarDigital Library
- D. Lea. The Java Concurrency Package (JSR-166), 2009.Google Scholar
- M. M. Michael. High performance dynamic lock-free hash tables and list-based sets. In Proceedings of fourteenth annual ACM symposium on Parallel algorithms and architectures, pages 73--82, 2002. Google ScholarDigital Library
- M. M. Michael. Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects. IEEE Transactions on Parallel and Distributed Systems, 15(6):491--504, 2004. Google ScholarDigital Library
- M. M. Michael and M. L. Scott. Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. In PODC '96: Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, pages 267--275, 1996. Google ScholarDigital Library
- Microsoft. Parallel Computing Developer Center, 2009.Google Scholar
- M. Moir. Transparent Support for Wait-Free Transactions. In WDAG '97: Proceedings of the 11th International Workshop on Distributed Algorithms, pages 305--319, 1997. Google ScholarDigital Library
- N. Shavit and D. Touitou. Software Transactional Memory. In PODC '95: Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, pages 204--213, 1995. Google ScholarDigital Library
- H. Sundell and P. Tsigas. NOBLE: A Non-Blocking Inter-Process Communication Library. In Proceedings of the 6th Workshop on Languages, Compilers and Run-time Systems for Scalable Computers, Lecture Notes in Computer Science, 2002.Google Scholar
- H. Sundell and P. Tsigas. Scalable and lock-free concurrent dictionaries. In SAC '04: Proceedings of the 2004 ACM symposium on Applied computing, pages 1438--1445, 2004. Google ScholarDigital Library
- H. Sundell and P. Tsigas. Fast and lock-free concurrent priority queues for multi-thread systems. Journal of Parallel and Distributed Computing, 65(5):609--627, 2005. Google ScholarDigital Library
- R. K. Treiber. Systems programming: Coping with parallelism. In Technical Report RJ 5118, April 1986.Google Scholar
- P. Tsigas and Y. Zhang. Evaluating the Performance of Non-Blocking Synchronization on Shared-Memory Multiprocessors. ACM SIGMETRICS Performance Evaluation Review, 29(1):320--321, 2001. Google ScholarDigital Library
- P. Tsigas and Y. Zhang. Integrating Non-Blocking Synchronisation in Parallel Applications: Performance Advantages and Methodologies. In WOSP '02: Proceedings of the 3rd international workshop on Software and performance, pages 55--67, 2002. Google ScholarDigital Library
- V. Vafeiadis. Shape-Value Abstraction for Verifying Linearizability. In Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation, pages 335--348, 2009. Google ScholarDigital Library
- J. D. Valois. Lock-free linked lists using compare-and-swap. In PODC '95: Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, pages 214--222, 1995. Google ScholarDigital Library
Index Terms
- Supporting lock-free composition of concurrent data objects
Recommendations
Supporting lock-free composition of concurrent data objects
PPoPP '10Lock-free data objects offer several advantages over their blocking counterparts, such as being immune to deadlocks and convoying and, more importantly, being highly concurrent. But they share a common disadvantage in that the operations they provide ...
Supporting lock-free composition of concurrent data objects
PPoPP '10: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingLock-free data objects offer several advantages over their blocking counterparts, such as being immune to deadlocks and convoying and, more importantly, being highly concurrent. But they share a common disadvantage in that the operations they provide ...
Supporting Lock-Free Composition of Concurrent Data Objects: Moving Data between Containers
Lock-free data objects offer several advantages over their blocking counterparts, such as being immune to deadlocks, priority inversion, and convoying. They have also been shown to work well in practice. However, composing the operations they provide ...
Comments