Transparent support for wait-free transactions
This paper concerns software support for non-blocking transactions in shared-memory multiprocessors. We present mechanisms that convert sequential transactions into lock-free or wait-free ones. In contrast to some previous mechanisms, ours support transactions for which the set of memory locations accessed cannot be determined in advance. Our implementations automatically detect and resolve conflicts between concurrent transactions, and allow transactions that do not conflict to execute in parallel. The key to the efficiency of our wait-free implementation lies in using a lock-free (but not wait-free) multi-word compare-and-swap (MWCAS) operation. By introducing communication between a high-level helping mechanism and the lock-free MWCAS, we show that an expensive wait-free MWCAS is not necessary to ensure wait-freedom.
KeywordsMemory Location Tail Index Transactional Memory Shared Object FIFO Queue
Unable to display preview. Download preview PDF.
- 1.Y. Afek, D. Dauber, and D. Touitou, “Wait-free Made Fast”, Proceedings of the 27th Annual ACM Symposium on Theory of Computing, 1995.Google Scholar
- 2.J. Anderson and M. Moir, “Universal Constructions for Multi-Object Operations”, Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing, 1995.Google Scholar
- 3.J. Anderson and M. Moir, “Universal Constructions for Large Objects”, Proceedings of the Ninth International Workshop on Distributed Algorithms, 1995.Google Scholar
- 4.J. Anderson and M. Moir, “Using Local-Spin k-Exclusion Algorithms to Improve Wait-Free Object Implementations”, to appear in Distributed Computing.Google Scholar
- 5.G. Barnes, “A Method for Implementing Lock-Free Shared Data Structures”, Proceedings of the Fifth Annual ACM Symposium on Parallel Algorithms and Architectures, 1993.Google Scholar
- 6.M. Herlihy, “A Methodology for Implementing Highly Concurrent Data Objects”, ACM Transactions on Programming Languages and Systems, 15(5), 1993.Google Scholar
- 7.A. Israeli and L. Rappoport, “Disjoint-Access-Parallel Implementations of Strong Shared Memory Primitives”, Proceedings of the 13th Annual ACM Symposium on Principles of Distributed Computing, 1994.Google Scholar
- 8.M. Moir, “Practical Implementations of Synchronization Primitives”, to appear in the 16th Annual ACM Symposium on Principles of Distributed Computing.Google Scholar
- 9.G. Pfister and V. Norton, “Hot Spot Contention and Combining in Multistage Interconnection Networks”, IEEE Transactions on Computing, C-34, 10, 1985.Google Scholar
- 10.N. Shavit and D. Touitou, “Software Transactional Memory”, Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing, 1995.Google Scholar
- 11.J. Turek, D. Shasha, and S. Prakash, “Locking Without Blocking: Making Lock Based Concurrent Data Structure Algorithms Non-Blocking”, Proceedings of the 11th Symposium on Principles of Database Systems, 1992.Google Scholar