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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Andrei Alexandrescu. Modern C++ Design. Addison-Wesley, 2001.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Colin Blundell, EChristopher Lewis, and Milo M. Martin. Subtleties of transactional memory atomicity semantics. IEEE Comput. Archit. Lett., 5(2):17, 2006. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- K. Mani Chandy and Leslie Lamport. Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst., 3(1):63--75, 1985. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification, Third Edition. Prentice Hall, 2005. Google ScholarDigital Library
- Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1992. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Tim Harris. Exceptions and side-effects in atomic blocks. Science of Computer Programming, 58(3):325--343, 2005. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- CAR. Hoare. Towards a theory of parallel programming. In International Seminar on Operating System Techniques, 1971.Google Scholar
- CAR. Hoare. Monitors: An operating system structuring concept. Commun. ACM, 17(10):549--557, 1974. Google ScholarDigital Library
- 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 ScholarDigital Library
- Anthony Kay. AlphaMail. http://sourceforge.net/projects/alphamail, January 2007.Google Scholar
- Butler W. Lampson and David D. Redell. Experience with processes and monitors in Mesa. Commun. ACM, 23(2):105--117, 1980. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Transactions with isolation and cooperation
Recommendations
Transactions with isolation and cooperation
Proceedings of the 2007 OOPSLA conferenceWe 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 ...
Hybrid STM/HTM for nested transactions on OpenJDK
OOPSLA '16Transactional memory (TM) has long been advocated as a promising pathway to more automated concurrency control for scaling concurrent programs running on parallel hardware. Software TM (STM) has the benefit of being able to run general transactional ...
Hybrid STM/HTM for nested transactions on OpenJDK
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsTransactional memory (TM) has long been advocated as a promising pathway to more automated concurrency control for scaling concurrent programs running on parallel hardware. Software TM (STM) has the benefit of being able to run general transactional ...
Comments