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

A flexible framework for implementing software transactional memory

Published: 16 October 2006 Publication History
  • Get Citation Alerts
  • Abstract

    We describe DSTM2, a Java™ software library that provides a flexible framework for implementing object-based software transactional memory (STM). The library uses transactional factories to transform sequential (unsynchronized) classes into atomic (transactionally synchronized) ones, providing a substantial improvement over the awkward programming interface of our previous DSTM library. Furthermore, researchers can experiment with alternative STM mechanisms by providing their own factories. We demonstrate this flexibility by presenting two factories: one that uses essentially the same mechanisms as the original DSTM (with some enhancements),and another that uses a completely different approach.Because DSTM2 is packaged as a Java library, a wide range of programmers can easily try it out, and the community can begin to gain experience with transactional programming. Furthermore, researchers will be able to use the body of transactional programs that arises from this community experience to test and evaluate different STM mechanisms simply by supplying new transactional factories. We believe that this flexible approach will help to build consensus about the best ways to implement transactions, and will avoid the premature "lock-in" that may arise if STM mechanisms are baked into compilers before such experimentation is done.

    References

    [1]
    C. Scott Ananian, Krste Asanovic, Bradley C. Kuszmaul, Charles E. Leiserson, and Sean Lie. Unbounded transactional memory. In Proc. 11th International Symposium on High-Performance Computer Architecture, pages 316--327, February 2005.]]
    [2]
    C. Cole and M. P. Herlihy. Snapshots and software transactional memory. Science of Computer Programming, 58(3):310--324, December 2005.]]
    [3]
    Peter Damron, Alexandra Fedorova, Yossi Lev, Victor Luchangco, Mark Moir, and Dan Nussbaum. Hybrid transactional memory. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-XII), October 2006.]]
    [4]
    Apache Software Foundation. Byte-code engineering library. http://jakarta.apache.org/bcel/manual.html.]]
    [5]
    Keir Fraser and Tim Harris. Concurrent programming without locks. Submitted for publication.]]
    [6]
    Rachid Guerraoui, Maurice Herlihy, and Bastian Pochon. Polymorphic contention management in SXM. In Proceedings of the 19th International Conference on Distributed Computing, September 2005.]]
    [7]
    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 Proc. 31st Annual International Symposium on Computer Architecture, June 2004.]]
    [8]
    Tim Harris and Keir Fraser. Language support for lightweight transactions. In Proceedings of the 18th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications, pages 388--402, 2003.]]
    [9]
    Tim Harris, Simon Marlow, Simon Peyton Jones, and Maurice Herlihy. Composable memory transactions. In Proceedings of the 10th ACM SIGPLAN Symposisum on Principles and Practice of Parallel Programming, 2005.]]
    [10]
    Maurice Herlihy. http://www.cs.brown.edu/~mph/.]]
    [11]
    Maurice Herlihy, Victor Luchangco, and Mark Moir. Obstruction-free synchronization: Double-ended queues as an example. In Proceedings of the 23rd International Conference on Distributed Computing Systems (ICDCS ), pages 522--529, May 2003.]]
    [12]
    Maurice Herlihy, Victor Luchangco, Mark Moir, and William N. Scherer, III. Software transactional memory for dynamic-sized data structures. In Proceedings of the 22nd Annual ACM Symposium on Principles of Distributed Computing, pages 92--101, 2003.]]
    [13]
    Maurice Herlihy and J. Eliot B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proc. 20th Annual International Symposium on Computer Architecture, pages 289--300, May 1993.]]
    [14]
    W. N. Scherer III and M. L. Scott. Contention management in dynamic software transactional memory. In PODC Workshop on Concurrency and Synchronization in Java Programs, July 2004.]]
    [15]
    Amos Israeli and Lihu Rappoport. Disjoint-access-parallel implementations of strong shared memory primitives. In Proceedings of the 13th Annual ACM Symposium on Principles of Distributed Computing, pages 151--160, 1994.]]
    [16]
    V. J. Marathe, W. N. Scherer III, and M. L. Scott. Design tradeoffs in modern software transactional memory systems. In 7th Workshop on Languages, Compilers, and Run-time Support for Scalable Systems, October 2004.]]
    [17]
    Virendra Marathe, William Scherer, and Michael Scott. Adaptive software transactional memory. In Proceedings of the 19th International Conference on Distributed Computing, September 2005.]]
    [18]
    Mark Moir. Practical implementations of non-blocking synchronization primitives. In Proceedings of the 16th Annual ACM Symposium on Principles of Distributed Computing, pages 219--228, 1997.]]
    [19]
    Kevin E. Moore, Jayaram Bobba, Michelle J. Moravan, Mark D. Hill, and David A. Wood. LogTM: Log-based transactional memory. In Proc. 12th Annual International Symposium on High Performance Computer Architecture, 2006.]]
    [20]
    Kevin E. Moore, Mark D. Hill, and David A. Wood. Thread-level transactional memory. Technical Report CS-TR-2005-1524, Dept. of Computer Sciences University of Wisconsin, March 2005.]]
    [21]
    J. Eliot B. Moss and Antony L. Hosking. Nested transactional memory: Model and preliminary architecture sketches. In OOPSLA Workshop on Synchronization and Concurrency in Object-Oriented Languages, October 2005.]]
    [22]
    William Pugh. Skip lists: A probabilistic alternative to balanced trees. Communications of the ACM, 33(6):668--676, June 1990.]]
    [23]
    Bratin Saha, Ali-Reza Adl-Tabatabai, Rick Hudson, Chi Cao Minh, and Benjamin Hertzberg. McRT-STM: A high performance software transactional memory system for a multi-core runtime. In Proceedings of the 11th ACM SIGPLAN Symposium on Principle and Practice of Parallel Programs (PPoPP), 2006.]]
    [24]
    N. Shavit and D. Touitou. Software transactional memory. Distributed Computing, Special Issue(10):99--116, 1997.]]
    [25]
    Sun Microsystems Laboratories. Scalable synchronization research group. http://research.sun.com/scalable.]]
    [26]
    Adam Welc, Suresh Jagannathan, and Antony L. Hosking. Transactional monitors for concurrent objects. In Proceedings of the 18th European Conference on Object-Oriented Programming, pages 519--542, June 2004.]]

    Cited By

    View all
    • (2023)Flexible scheduling of transactional memory on treesTheoretical Computer Science10.1016/j.tcs.2023.114184(114184)Online publication date: Sep-2023
    • (2019)Practical Progress Verification of Descriptor-Based Non-Blocking Data Structures2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS)10.1109/MASCOTS.2019.00019(83-93)Online publication date: Oct-2019
    • (2019)Refactoring Java Programs for Customizable Locks Based on Bytecode TransformationIEEE Access10.1109/ACCESS.2019.29192037(66292-66303)Online publication date: 2019
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
    October 2006
    514 pages
    ISBN:1595933484
    DOI:10.1145/1167473
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 41, Issue 10
      Proceedings of the 2006 OOPSLA Conference
      October 2006
      480 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1167515
      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: 16 October 2006

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Java library
    2. atomicity
    3. concurrency
    4. obstruction-free factory
    5. shadow factory
    6. software transactional memory (STM)
    7. transactions

    Qualifiers

    • Article

    Conference

    OOPSLA06
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 268 of 1,244 submissions, 22%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)13
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Flexible scheduling of transactional memory on treesTheoretical Computer Science10.1016/j.tcs.2023.114184(114184)Online publication date: Sep-2023
    • (2019)Practical Progress Verification of Descriptor-Based Non-Blocking Data Structures2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS)10.1109/MASCOTS.2019.00019(83-93)Online publication date: Oct-2019
    • (2019)Refactoring Java Programs for Customizable Locks Based on Bytecode TransformationIEEE Access10.1109/ACCESS.2019.29192037(66292-66303)Online publication date: 2019
    • (2019)Improving hardware transactional memory parallelization of computational geometry algorithms using privatizing transactionsJournal of Parallel and Distributed Computing10.1016/j.jpdc.2019.04.018Online publication date: May-2019
    • (2018)Peapods: OS-Independent Memory Confidentiality for Cryptographic Engines2018 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Ubiquitous Computing & Communications, Big Data & Cloud Computing, Social Computing & Networking, Sustainable Computing & Communications (ISPA/IUCC/BDCloud/SocialCom/SustainCom)10.1109/BDCloud.2018.00128(862-869)Online publication date: Dec-2018
    • (2018)Privatizing transactions for Lee's algorithm in commercial hardware transactional memoryThe Journal of Supercomputing10.1007/s11227-017-2188-274:4(1676-1694)Online publication date: 1-Apr-2018
    • (2018)A systematic survey on automated concurrency bug detection, exposing, avoidance, and fixing techniquesSoftware Quality Journal10.1007/s11219-017-9385-326:3(855-889)Online publication date: 1-Sep-2018
    • (2018)$$\hbox {TM}^{2}$$TM2CDistributed Computing10.1007/s00446-017-0310-631:5(367-388)Online publication date: 1-Oct-2018
    • (2017)Accelerating GPU Hardware Transactional Memory with Snapshot IsolationACM SIGARCH Computer Architecture News10.1145/3140659.308020445:2(282-294)Online publication date: 24-Jun-2017
    • (2017)Accelerating GPU Hardware Transactional Memory with Snapshot IsolationProceedings of the 44th Annual International Symposium on Computer Architecture10.1145/3079856.3080204(282-294)Online publication date: 24-Jun-2017
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media