Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1297027.1297042acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Transactions with isolation and cooperation

Published: 21 October 2007 Publication 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.
[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.
[3]
Andrei Alexandrescu. Modern C++ Design. Addison-Wesley, 2001.
[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.
[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.
[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.
[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.
[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.
[9]
Colin Blundell, EChristopher Lewis, and Milo M. Martin. Subtleties of transactional memory atomicity semantics. IEEE Comput. Archit. Lett., 5(2):17, 2006.
[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.
[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.
[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.
[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.
[14]
K. Mani Chandy and Leslie Lamport. Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst., 3(1):63--75, 1985.
[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.
[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.
[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.
[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.
[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.
[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/.
[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.
[22]
James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification, Third Edition. Prentice Hall, 2005.
[23]
Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1992.
[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.
[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.
[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.
[27]
Tim Harris. Exceptions and side-effects in atomic blocks. Science of Computer Programming, 58(3):325--343, 2005.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[35]
CAR. Hoare. Towards a theory of parallel programming. In International Seminar on Operating System Techniques, 1971.
[36]
CAR. Hoare. Monitors: An operating system structuring concept. Commun. ACM, 17(10):549--557, 1974.
[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.
[38]
Anthony Kay. AlphaMail. http://sourceforge.net/projects/alphamail, January 2007.
[39]
Butler W. Lampson and David D. Redell. Experience with processes and monitors in Mesa. Commun. ACM, 23(2):105--117, 1980.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.

Cited By

View all
  • (2019)Encapsulated open nesting for STMProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295723(315-326)Online publication date: 16-Feb-2019
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsACM SIGPLAN Notices10.1145/3155284.301874752:8(299-312)Online publication date: 26-Jan-2017
  • (2017)Transactional actors: communication in transactionsProceedings of the 4th ACM SIGPLAN International Workshop on Software Engineering for Parallel Systems10.1145/3141865.3141866(31-41)Online publication date: 23-Oct-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 October 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. TIC
  2. nested transactions
  3. open-nesting
  4. punctuation
  5. transactional memory

Qualifiers

  • Article

Conference

OOPSLA07
Sponsor:

Acceptance Rates

OOPSLA '07 Paper Acceptance Rate 33 of 156 submissions, 21%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Encapsulated open nesting for STMProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295723(315-326)Online publication date: 16-Feb-2019
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsACM SIGPLAN Notices10.1145/3155284.301874752:8(299-312)Online publication date: 26-Jan-2017
  • (2017)Transactional actors: communication in transactionsProceedings of the 4th ACM SIGPLAN International Workshop on Software Engineering for Parallel Systems10.1145/3141865.3141866(31-41)Online publication date: 23-Oct-2017
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsProceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3018743.3018747(299-312)Online publication date: 26-Jan-2017
  • (2016)Practical condition synchronization for transactional memoryProceedings of the Eleventh European Conference on Computer Systems10.1145/2901318.2901342(1-16)Online publication date: 18-Apr-2016
  • (2015)Panini: a concurrent programming model with modular reasoningCompanion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity10.1145/2814189.2814198(30-32)Online publication date: 25-Oct-2015
  • (2015)Panini: a concurrent programming model for solving pervasive and oblivious interferenceProceedings of the 14th International Conference on Modularity10.1145/2724525.2724568(93-108)Online publication date: 16-Mar-2015
  • (2014)Transactionalizing legacy codeACM SIGARCH Computer Architecture News10.1145/2654822.254196042:1(399-412)Online publication date: 24-Feb-2014
  • (2014)Transactionalizing legacy codeACM SIGPLAN Notices10.1145/2644865.254196049:4(399-412)Online publication date: 24-Feb-2014
  • (2014)Transaction-friendly condition variablesProceedings of the 26th ACM symposium on Parallelism in algorithms and architectures10.1145/2612669.2612681(198-207)Online publication date: 23-Jun-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media