skip to main content
research-article

Transaction communicators: enabling cooperation among concurrent transactions

Published:12 February 2011Publication History
Skip Abstract Section

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).

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. U. Aydonat and T. Abdelrahmen. Serializability of transactions in software transactional memory. In TRANSACT, 2009.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. K. Donnelly and M. Fluet. Transactional Events. In Proceedings of the 11th ACM SIGPLAN International Conference on Functional Programming, pages 124--135, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. R. Guerraoui and M. Kapalka. Principles of Transactional Memory. Morgan Claypool, 2010.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. C. Hoare. Communicating Sequential Processes. Prentice Hall, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. V. Luchangco and V. J. Marathe. Transaction Synchronizers. In Proceedings of the Workshop on Synchronization and Concurrency in Object-Oriented Languages, 2005.Google ScholarGoogle Scholar
  17. J. E. B. Moss. Nested Transactions: An Approach to Reliable Distributed Computing. PhD thesis, Massachusetts Institute of Technology, 1981.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. Standard Performance Evaluation Corporation (SPEC). SPECjbb2005 Java Server Benchmark. http://www.spec.org/jbb2005/.Google ScholarGoogle Scholar
  21. The Maxine Virtual Machine. http://research.sun.com/projects/maxine/.Google ScholarGoogle Scholar
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Transaction communicators: enabling cooperation among concurrent transactions

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 46, Issue 8
        PPoPP '11
        August 2011
        300 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2038037
        Issue’s Table of Contents
        • cover image ACM Conferences
          PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
          February 2011
          326 pages
          ISBN:9781450301190
          DOI:10.1145/1941553
          • General Chair:
          • Calin Cascaval,
          • Program Chair:
          • Pen-Chung Yew

        Copyright © 2011 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 12 February 2011

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!