skip to main content
10.1145/1297027.1297042acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Transactions with isolation and cooperation

Published:21 October 2007Publication History

ABSTRACT

We present the TIC (Transactions with Isolation and Cooperation) model for concurrent programming. TIC adds to standard transactional memory the ability for a transaction to observe the effects of other threads at selected points. This allows transactions to cooperate, as well as to invoke nonrepeatable or irreversible operations, such as I/O. Cooperating transactions run the danger of exposing intermediate state and of having other threads change the transaction's state. The TIC model protects against unanticipated interference by having the type system keep track of all operations that may (transitively) violate the atomicity of a transaction and require the programmer to establish consistency at appropriate points. The result is a programming model that is both general and simple. We have used the TIC model to re-engineer existing lock-based applications including a substantial multi-threaded web mail server and a memory allocator with coarse-grained locking. Our experience confirms the features of the TIC model: It is convenient for the programmer, while maintaining the benefits of transactional memory.

References

  1. Ali-Reza Adl-Tabatabai, Brian T. Lewis, Vijay Menon, Brian R. Murphy, Bratin Saha, and Tatiana Shpeisman. Compiler and runtime support for efficient software transactional memory. In PLDI '06: Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, pages 26--37, Ottawa, Ontario, Canada, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Kunal Agrawal, Charles E. Leiserson, and Jim Sukha. Memory models for open-nested transactions. In MSPC '06: Proceedings of the 2006 workshop on Memory system performance and correctness, pages 70--81, San Jose, California, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Andrei Alexandrescu. Modern C++ Design. Addison-Wesley, 2001.Google ScholarGoogle Scholar
  4. Russell Atkinson and Carl Hewitt. Synchronization in actor systems. In POPL '77: Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 267--280, Los Angeles, California, 1977. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe, and Paul R. Wilson. Hoard: A scalable memory allocator for multithreaded applications. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS--IX), pages 117--128, Cambridge, MA, November 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Emery D. Berger, Benjamin G. Zorn, and Kathryn S. McKinley. Composing high-performance memory allocators. In SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 114--124, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Stephen Blackburn and John N. Zigman. Concurrency-the fly in the ointment? In Proceedings of the 8th International Workshop on Persistent Object Systems (POS8) and Proceedings of the 3rd International Workshop on Persistence and Java (PJW3), pages 250--258, San Francisco, CA, USA, 1999. Morgan Kaufmann Publishers Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Colin Blundell, Joe Devietti, EChristopher Lewis, and Milo MK. Martin. Making the fast case common and the uncommon case simple in unbounded transactional memory. In ISCA '07: Proceedings of the 34th Annual International Symposium on Computer architecture, pages 24--34, San Diego, California, USA, 2007. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Colin Blundell, EChristopher Lewis, and Milo M. Martin. Subtleties of transactional memory atomicity semantics. IEEE Comput. Archit. Lett., 5(2):17, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Colin Blundell, E~Christopher Lewis, and Milo MK. Martin. Unrestricted transactional memory: Supporting I/O and system calls within transactions. Technical Report CIS-06-09, Department of Computer and Information Science, University of Pennsylvania, Apr 2006.Google ScholarGoogle Scholar
  11. Brian D. Carlstrom, JaeWoong Chung, Hassan Chafi, Austen McDonald, Chi Cao Minh, Lance Hammond, Christos Kozyrakis, and Kunle and Olukotun. Transactional execution of java programs. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL). Oct 2005.Google ScholarGoogle Scholar
  12. Brian D. Carlstrom, JaeWoong Chung, Hassan Chafi, Austen McDonald, Chi Cao Minh, Lance Hammond, Christos Kozyrakis, and Kunle Olukotun. Executing Java programs with transactional memory. Science of Computer Programming, 63:111--129, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Brian D. Carlstrom, Austen McDonald, Michael Carbin, Christos Kozyrakis, and Kunle Olukotun. Transactional collection classes. In PPoPP '07: Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 56--67, San Jose, California, USA, 2007. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. K. Mani Chandy and Leslie Lamport. Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst., 3(1):63--75, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Weihaw Chuang, Satish Narayanasamy, Ganesh Venkatesh, Jack Sampson, Michael Van Biesbrouck, Gilles Pokam, Brad Calder, and Osvaldo Colavin. Unbounded page-based transactional memory. In ASPLOS-XII: Proceedings of the 12th International conference on Architectural support for programming languages and operating systems, pages 347--358, San Jose, California, USA, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. JaeWoong Chung, Hassan Chafi, Chi Cao Minh, Austen McDonald, Brian D. Carlstrom, Christos Kozyrakis, and Kunle Olukotun. The common case transactional behavior of multithreaded programs. In Proceedings of the Twelfth International Symposium on High-Performance Computer Architecture. Feb 2006.Google ScholarGoogle Scholar
  17. David Dice, Ori Shalev, and Nir Shavit. Transactional locking II. In Shlomi Dolev, editor, Distributed Computing, 20th International Symposium (DISC), volume 4167 of Lecture Notes in Computer Science. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. EN(Mootaz) Elnozahy, Lorenzo Alvisi, Yi-Min Wang, and David B. Johnson. A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv., 34(3):375--408, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Michael Emmi, Jeffrey S. Fischer, Ranjit Jhala, and Rupak Majumdar. Lock allocation. In POPL '07: Symposium on Principles of Programming Languages, pages 291--296. ACM Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Robert Ennals. Software transactional memory should not be lock free. Technical Report IRC-TR-06-052, Intel Research Cambridge, 2006. Available from http://berkeley.intel-research.net/rennals/.Google ScholarGoogle Scholar
  21. Kapali P. Eswaran, Jim N. Gray, Raymond A. Lorie, and Irving L. Traiger. The notions of consistency and predicate locks in a database system. Commun. ACM, 19(11):624--633, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification, Third Edition. Prentice Hall, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Dan Grossman. The transactional memory / garbage collection analogy. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Essays Track. ACM SIGPLAN, October 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Dan Grossman, Jeremy Manson, and William Pugh. What do high-level memory models mean for transactions? In MSPC '06: Proceedings of the 2006 workshop on Memory system performance and correctness, pages 62--69, San Jose, California, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Lance Hammond, Vicky Wong, Mike Chen, Brian D. Carlstrom, John D. Davis, Ben Hertzberg, Manohar K. Prabhu, Honggo Wijaya, Christos Kozyrakis, and Kunle Olukotun. Transactional memory coherence and consistency. In Proceedings of the 31st Annual International Symposium on Computer Architecture, page 102. IEEE Computer Society, Jun 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Tim Harris. Exceptions and side-effects in atomic blocks. Science of Computer Programming, 58(3):325--343, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Tim Harris and Keir Fraser. Language support for lightweight transactions. In OOPSLA '03: Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programing, Systems, Languages, and Applications, pages 388--402, Anaheim, California, USA, 2003. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Tim Harris, Maurice Herlihy, Simon Marlow, and Simon Peyton-Jones. Composable memory transactions. In Proceedings of the ACM Symposium on Principles and Practice of Parallel Programming, Jun 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Tim Harris, Mark Plesko, Avraham Shinnar, and David Tarditi. Optimizing memory transactions. In PLDI'06: Proceedings of the 2006 ACM SIGPLAN Conference on Programming language design and implementation, pages 14--25, Ottawa, Ontario, Canada, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Maurice Herlihy, Victor Luchangco, and Mark Moir. A flexible framework for implementing software transactional memory. In OOPSLA '06: Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-oriented programming systems, languages, and applications, pages 253--262, Portland, Oregon, USA, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Maurice Herlihy and JEliot B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 289--300. May 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Michael Hicks, Jeffrey S. Foster, and Polyvios Prattikakis. Lock inference for atomic sections. In Proceedings of the First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing. Jun 2006.Google ScholarGoogle Scholar
  34. Benjamin Hindman and Dan Grossman. Atomicity via source-to-source translation. In MSPC '06: Proceedings of the 2006 workshop on Memory system performance and correctness, pages 82--91, San Jose, California, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. CAR. Hoare. Towards a theory of parallel programming. In International Seminar on Operating System Techniques, 1971.Google ScholarGoogle Scholar
  36. CAR. Hoare. Monitors: An operating system structuring concept. Commun. ACM, 17(10):549--557, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Richard L. Hudson, Bratin Saha, Ali-Reza Adl-Tabatabai, and Benjamin C. Hertzberg. Mcrt-malloc: A scalable transactional memory allocator. In ISMM '06: Proceedings of the 2006 international symposium on Memory management, pages 74--83, Ottawa, Ontario, Canada, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Anthony Kay. AlphaMail. http://sourceforge.net/projects/alphamail, January 2007.Google ScholarGoogle Scholar
  39. Butler W. Lampson and David D. Redell. Experience with processes and monitors in Mesa. Commun. ACM, 23(2):105--117, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Jeremy Manson, Jason Baker, Antonio Cunei, Suresh Jagannathan, Marek Prochazka, Bin Xin, and Jan Vitek. Preemptible atomic regions for real-time java. rtss, 0:62--71, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Bill McCloskey, Feng Zhou, David Gay, and Eric Brewer. Autolocker: Synchronization inference for atomic sections. In POPL '06: Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 346--358, Charleston, South Carolina, USA, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Chi Cao Minh, Martin Trautmann, JaeWoong Chung, Austen McDonald, Nathan Bronson, Jared Casper, Christos Kozyrakis, and Kunle Olukotun. An effective hybrid transactional memory system with strong isolation guarantees. In ISCA '07: Proceedings of the 34th Annual International Symposium on Computer architecture, pages 69--80, San Diego, California, USA, 2007. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Kevin E. Moore, Jayaram Bobba, Michelle J. Moravan, Mark D. Hill, and David A. Wood. LogTM: Log-based transactional memory. In Proceedings of the 12th International Symposium on High-Performance Computer Architecture, pages 254--265. Feb 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Michelle J. Moravan, Jayaram Bobba, Kevin E. Moore, Luke Yen, Mark D. Hill, Ben Liblit, Michael M. Swift, and David A. Wood. Supporting nested transactional memory in logTM. In ASPLOS--XII: Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, pages 359--370, San Jose, California, USA, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. J. Eliot B. Moss and Antony L. Hosking. Nested transactional memory: Model and architecture sketches. Science of Computer Programming, 63(2):186--201, Dec 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Yang Ni, Vijay Menon, Ali-Reza Adl-Tabatabai, Antony L. Hosking, Richard L. Hudson, J. Eliot B. Moss, Bratin Saha, and Tatiana Shpeisman. Open nesting in software transactional memory. In Proceedings of the Symposium on Principles and Practice of Parallel Processing, San Jose, California, March 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Ravi Rajwar, Maurice Herlihy, and Konrad Lai. Virtualizing transactional memory. In ISCA '05: Proceedings of the 32nd Annual International Symposium on Computer Architecture, pages 494--505, Washington, DC, USA, 2005. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Andreas Reuter and Friedemann Schwenkreis. Contracts-a low-level mechanism for building general-purpose workflow management-systems. Bulletin of the Technical Committee on Data Engineering, 18(1), 1995.Google ScholarGoogle Scholar
  49. Bratin Saha, Ali-Reza Adl-Tabatabai, and Quinn Jacobson. Architectural support for software transactional memory. In MICRO '06: Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, pages 185--196, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Tatiana Shpeisman, Vijay Menon, Ali-Reza Adl-Tabatabai, Steven Balensiefer, Dan Grossman, Richard L. Hudson, Katherine F. Moore, and Bratin Saha. Enforcing isolation and ordering in STM. In PLDI '07: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design Implementation, pages 78--88, San Diego, California, USA, 2007. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Arrvindh Shriraman, Michael F. Spear, Hemayet Hossain, Virendra J. Marathe, Sandhya Dwarkadas, and Michael L. Scott. An integrated hardware-software approach to flexible transactional memory. In ISCA '07: Proceedings of the 34th Annual International Symposium on Computer architecture, pages 104--115, San Diego, California, USA, 2007. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Gerhard Weikum and Hans-Jorg Schek. Concepts and applications of multilevel transactions and open nested transactions. In Database Transaction Models for Advanced Applications, pages 515--553. 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Lukasz Ziarek, Philip Schatz, and Suresh Jagannathan. Stabilizers: a modular checkpointing abstraction for concurrent functional programs. In ICFP '06: Proceedings of the Eleventh ACM SIGPLAN International Conference on Functional programming, pages 136--147, Portland, Oregon, USA, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Transactions with isolation and cooperation

          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
          • Published in

            cover image ACM Conferences
            OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications
            October 2007
            728 pages
            ISBN:9781595937865
            DOI:10.1145/1297027
            • cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 42, Issue 10
              Proceedings of the 2007 OOPSLA conference
              October 2007
              686 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/1297105
              Issue’s Table of Contents

            Copyright © 2007 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 21 October 2007

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            OOPSLA '07 Paper Acceptance Rate33of156submissions,21%Overall Acceptance Rate268of1,244submissions,22%

            Upcoming Conference

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader