Abstract
In this paper, we propose to extend transactional memory with transaction communicators, special objects through which concurrent transactions can communicate: changes by one transaction to a communicator can be seen by concurrent transactions before the first transaction commits. Although isolation of transactions is compromised by such communication, we constrain the effects of this compromise by tracking dependencies among transactions, and preventing any transaction from committing unless every transaction whose changes it saw also commits. In particular, mutually dependent transactions must commit or abort together, and transactions that do not communicate remain isolated. To help programmers synchronize accesses to communicators, we also provide special communicator-isolating transactions, which ensure isolation even for accesses to communicators. We propose language features to help programmers express the communicator constructs. We implemented a novel communicators-enabled STM runtime in the Maxine VM. Our preliminary evaluation demonstrates that communicators can be used in diverse settings to improve the performance of transactional programs, and to empower programmers with the ability to safely express within transactions important programming idioms that fundamentally require compromise of transaction isolation (e.g., CSP-style synchronous communication).
- A.-R. Adl-Tabatabai, B. T. Lewis, V. Menon, B. R. Murphy, B. Saha, and T. Shpeisman. Compiler and Runtime Support for Efficient Software Transactional Memory. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 26--37, 2006. Google Scholar
Digital Library
- K. Agrawal, C. E. Leiserson, and J. Sukha. Memory Models for Open-Nested Transactions. In Proceedings of the ACM SIGPLAN Workshop on Memory Systems Performance and Correctness, 2006. Google Scholar
Digital Library
- U. Aydonat and T. Abdelrahmen. Serializability of transactions in software transactional memory. In TRANSACT, 2009.Google Scholar
- C. Blundell, E. C. Lewis, and M. Martin. Deconstructing Transactions: The Subtleties of Atomicity. In the 4th Annual Workshop on Duplicating, Deconstructing, and Debunking, 2005.Google Scholar
- L. Dalessandro, V. J. Marathe, M. F. Spear, and M. L. Scott. Capabilities and Limitations of Library-Based Software Transactional Memory in C. In 2nd ACM SIGPLAN Workshop on Languages, Compilers and Hardware Support for Transactional Computing, 2007.Google Scholar
- S. Doherty, L. Groves, V. Luchangco, and M. Moir. Towards formally specifying and verifying transactional memory. Formal Aspects of Computing, To appear. Earlier version appeared in Refine 2009.Google Scholar
- K. Donnelly and M. Fluet. Transactional Events. In Proceedings of the 11th ACM SIGPLAN International Conference on Functional Programming, pages 124--135, 2006. Google Scholar
Digital Library
- P. Dudnik and M. M. Swift. Condition Variables and Transactional Memory: Problem or Opportunity? In Proceedings of the 4th ACM SIGPLAN Workshop on Transactional Computing, 2009.Google Scholar
- R. Guerraoui and M. Kapalka. Principles of Transactional Memory. Morgan Claypool, 2010.Google Scholar
- T. Harris and K. Fraser. Language Support for Lightweight Transactions. In Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications, pages 388--402, 2003. Google Scholar
Digital Library
- T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing Memory Transactions. In ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, pages 14--25, June 2006. Google Scholar
Digital Library
- M. Herlihy, V. Luchangco, M. Moir, and W. N. Scherer III. Software Transactional Memory for Dynamic-sized Data Structures. In Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing, pages 92--101, 2003. Google Scholar
Digital Library
- C. Hoare. Communicating Sequential Processes. Prentice Hall, 1985. Google Scholar
Digital Library
- D. Imbs, J. R. Gonzalez de Mendivil, and M. Raynal. Brief announcement: Virtual world consistency: A new condition for STM systems. In Proceedings of the 28th Annual ACM Sympoisium on Principles of Distributed Computing, 2009. Google Scholar
Digital Library
- M. Lesani and J. Palsberg. Communicating Memory Transactions. In Proceedings of the 16th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2011. Google Scholar
Digital Library
- V. Luchangco and V. J. Marathe. Transaction Synchronizers. In Proceedings of the Workshop on Synchronization and Concurrency in Object-Oriented Languages, 2005.Google Scholar
- J. E. B. Moss. Nested Transactions: An Approach to Reliable Distributed Computing. PhD thesis, Massachusetts Institute of Technology, 1981.Google Scholar
Digital Library
- H. E. Ramadan, I. Roy, and E. Witchel. Dependence-Aware Transactional Memory for Increased Concurrency. In Proceedings of the 41st Annual IEEE/ACM International Symposium on Microarchitecture, pages 246--257, 2008. Google Scholar
Digital Library
- Y. Smaragdakis, A. Kay, R. Behrends, and M. Young. Transactions with Isolation and Cooperation. In Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object Oriented Programming Systems and Applications, pages 191--210, 2007. Google Scholar
Digital Library
- Standard Performance Evaluation Corporation (SPEC). SPECjbb2005 Java Server Benchmark. http://www.spec.org/jbb2005/.Google Scholar
- The Maxine Virtual Machine. http://research.sun.com/projects/maxine/.Google Scholar
- H. Volos, A. Welc, A.-R. Adl-Tabatabai, T. Shpeisman, X. Tian, and R. Narayanaswamy. NePaLTM: Design and Implementation of Nested Parallelism for Transactional Memory Systems. In The 23rd European Conference on Object-Oriented Programming, pages 123--147, 2009. Google Scholar
Digital Library
- A. Welc, B. Saha, and A.-R. Adl-Tabatabai. Irrevocable Transactions and Their Applications. In Proceedings of the 20th Annual Symposium on Parallelism in Algorithms and Architectures, pages 285--296, 2008. Google Scholar
Digital Library
Index Terms
Transaction communicators: enabling cooperation among concurrent transactions
Recommendations
Transaction communicators: enabling cooperation among concurrent transactions
PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programmingIn this paper, we propose to extend transactional memory with transaction communicators, special objects through which concurrent transactions can communicate: changes by one transaction to a communicator can be seen by concurrent transactions before ...
Exploring data reusing of failed transaction
APPT'07: Proceedings of the 7th international conference on Advanced parallel processing technologiesTransactional Memory (TM) has been the promising parallel programming technique to relieve the tedious work of synchronizing shared object using lock mechanism. Transaction execution required to be atomic and isolated relative to the whole system. The ...







Comments