Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1772954.1772970acmconferencesArticle/Chapter ViewAbstractPublication PagescgoConference Proceedingsconference-collections
research-article

An efficient software transactional memory using commit-time invalidation

Published: 24 April 2010 Publication History
  • Get Citation Alerts
  • Abstract

    To improve the performance of transactional memory (TM), researchers have found many eager and lazy optimizations for conflict detection, the process of determining if transactions can commit. Despite these optimizations, nearly all TMs perform one aspect of lazy conflict detection in the same manner to preserve serializability. That is, they perform commit-time validation, where a transaction is checked for conflicts with previously committed transactions during its commit phase. While commit-time validation is efficient for workloads that exhibit limited contention, it can limit transaction throughput for contending workloads.
    This paper presents an efficient implementation of commit-time invalidation, a strategy where transactions resolve their conflicts with in-flight (uncommitted) transactions before they commit. Commit-time invalidation supplies the contention manager (CM) with data that is unavailable through commit-time validation, allowing the CM to make decisions that increase transaction throughput. Commit-time invalidation also requires notably fewer operations than commit-time validation for memory-intensive transactions, uses zero commit-time operations for dynamically detected read-only transactions, and guarantees full opacity for any transaction in O(N) time, an improvement over incremental validation's O(N2) time. Our experimental results show that for contending workloads, our efficient commit-time invalidating software TM (STM) is up to 3 x faster than TL2, a state-of-the-art validating STM.

    References

    [1]
    B. H. Bloom. Space/time trade-offs in hash coding with allow able errors. In Communications of the ACM, 1970.
    [2]
    C. Cascaval, C. Blundell, M. Michael, H. W. Cain, P. Wu, S. Chiras,and S. Chatterjee. Software transactional memory: Why is it only aresearch toy? In ACM Queue, 2008.
    [3]
    L. Dalessandro, M. F. Spear, and M. L. Scott. NOrec: Streamlining STM by abolishing ownership records. In Proceedings of the Symposium on Principles and Practice of Parallel Programming, 2010.
    [4]
    D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In Proceedings of the Symposium on Distributed Computing, 2006.
    [5]
    D. Dice and N. Shavit. Understanding tradeoffs in software transactional memory. In Proceedings of the Symposium on Code Generation and Optimization, 2007.
    [6]
    R. Ennals. Software transactional memory should not be obstruction free. In Intel Research Cambridge Tech Report, 2006.
    [7]
    K. Fraser and T. Harris. Concurrent programming without locks. In ACM Transactions on Computer Systems, 2007.
    [8]
    H. Garcia-Molina and G. Wiederhold. Read-only transactions in a distributed database. In ACM Transactions on Database Systems, 1982.
    [9]
    J. E. Gottschlich and D. A. Connors. DracoSTM: A practical C approachto software transactional memory. In Proceedings of the Symposium on Library-Centric Software Design, 2007.
    [10]
    J. E. Gottschlich and D. A. Connors. Extending contention managers for user-defined priority-based transactions. In Proceedings of the Workshop on Exploiting Parallelism with Transactional Memory and other Hardware Assisted Methods, 2008.
    [11]
    R. Guerraoui, M. Herlihy, and B. Pochon. Toward a theory of transactional contention managers. In Proceedings of the Symposium on Principles of Distributed Computing, 2005.
    [12]
    R. Guerraoui and M. Kapalka. On the correctness of transactional memory. In Proceedings of the Symposium on Principles and Practice of Parallel Programming, 2008.
    [13]
    T. Harris and K. Fraser. Language support for lightweight transactions.In Proceedings of the Conference on Object Oriented Programming, Systems, Languages and Applications, 2003.
    [14]
    M. Herlihy, V. Luchangco, M. Moir, and I. William N. Scherer. Software transactional memory for dynamic-sized data structures. In Proceedings of the Symposium on Principles of Distributed Computing, 2003.
    [15]
    M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the International Symposium on Computer Architecture, 1993.
    [16]
    M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Elsevier, Inc., 2008.
    [17]
    J. R. Larus and R. Rajwar. Transactional Memory.Morgan & Claypool, 2006.
    [18]
    V. J. Marathe and M. Moir. Toward high performance non blocking software transactional memory. In Proceedings of the Symposium on Principles and Practice of Parallel Programming, 2008.
    [19]
    K. E. Moore, J. Bobba, M. J. Moravan, M. D. Hill, and D. A. Wood. LogTM: log-based transactional memory. In Proceedings of the Conference on High-Performance Computer Architecture, 2006.
    [20]
    M. Olszewski, J. Cutler, and J. G. Steffan. JudoSTM: A dynamic binary-rewriting approach to software transactional memory. In Proceedings of the Conference on Parallel Architecture and Compilation Techniques, 2007.
    [21]
    J. K. Ousterhout, H. Da Costa, D. Harrison, J. A. Kunze, M. Kupfer, and J. G. Thompson. A trace-driven analysis of the UNIX 4.2BSD file system. Technical report, Berkeley, CA, 1985.
    [22]
    C. H. Papadimitriou. Serializability of concurrent data base updates. Technical report, Cambridge, MA., 1979.
    [23]
    H. E. Ramadan, C. J. Rossbach, and E. Witchel. Dependence-aware transactional memory for increased concurrency. In Proceedings of the Symposium on Microarchitecture, 2008.
    [24]
    H. E. Ramadan, I. Roy, M. Herlihy, and E. Witchel. Committing conflicting transactions in an STM. In Proceedings of the Symposium on Principles and Practice of Parallel Programming,2009.
    [25]
    B. Saha, A.-R. Adl-Tabatabai, R. L. Hudson, C. C. Minh, and B. Hertzberg. McRT-STM: a high performance software transactional memory system for a multi-core runtime. In Proceedings of the Symposium on Principles and Practice of Parallel Programming, 2006.
    [26]
    W. N. Scherer and M. L. Scott. Advanced contention management for dynamic software transactional memory. In Proceedings of the Symposium on Principles of Distributed Computing, 2005.
    [27]
    M. L. Scott. Sequential specification of transactional memory semantics. In Proceedings of the Workshop on Transactional Computing, 2006.
    [28]
    N. Shavit and D. Touitou. Software transactional memory. In Proceedings of the Principles of Distributed Computing, 1995.
    [29]
    M. F. Spear, L. Dalessandro, V. Marathe, and M. L. Scott. A comprehensive strategy for contention management in software transactional memory. In Proceedings of the Symposium on Principles and Practice of Parallel Programming, 2009.
    [30]
    M. F. Spear, V. J. Marathe, W. N. Scherer III, and M. L. Scott. Conflict detection and validation strategies for software transactional memory. In Proceedings of the Symposium on Distributed Computing, 2006.
    [31]
    M. F. Spear, M. M. Michael, and C. von Praun. RingSTM: scalable transactions with a single atomic instruction. In Proceedings of the Symposium on Parallelism in Algorithms and Architectures, 2008.
    [32]
    W. Vogels. File system usage in Windows NT 4.0. In Proceedings of the Symposium on Operating Systems Principles, 1999.

    Cited By

    View all
    • (2023)Separating Mechanism from Policy in STM2023 32nd International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT58117.2023.00031(279-296)Online publication date: 21-Oct-2023
    • (2022)HyTM-AP Hybrid Transactional Memory Scheme Using Abort Prediction and Adaptive Retry Policy for Multi-Core In-Memory DatabasesJournal of Database Management10.4018/JDM.29955533:1(1-22)Online publication date: 29-Jun-2022
    • (2020)Brief Announcement: On Implementing Software Transactional Memory in the C++ Memory ModelProceedings of the 39th Symposium on Principles of Distributed Computing10.1145/3382734.3405746(224-226)Online publication date: 31-Jul-2020
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    CGO '10: Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
    April 2010
    300 pages
    ISBN:9781605586359
    DOI:10.1145/1772954
    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

    In-Cooperation

    • IEEE CS uArch

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 24 April 2010

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. commit-time invalidation
    2. software transactional memory

    Qualifiers

    • Research-article

    Conference

    CGO '10

    Acceptance Rates

    Overall Acceptance Rate 312 of 1,061 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Separating Mechanism from Policy in STM2023 32nd International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT58117.2023.00031(279-296)Online publication date: 21-Oct-2023
    • (2022)HyTM-AP Hybrid Transactional Memory Scheme Using Abort Prediction and Adaptive Retry Policy for Multi-Core In-Memory DatabasesJournal of Database Management10.4018/JDM.29955533:1(1-22)Online publication date: 29-Jun-2022
    • (2020)Brief Announcement: On Implementing Software Transactional Memory in the C++ Memory ModelProceedings of the 39th Symposium on Principles of Distributed Computing10.1145/3382734.3405746(224-226)Online publication date: 31-Jul-2020
    • (2019)The Case for Phase-Based Transactional MemoryIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2018.286171230:2(459-472)Online publication date: 1-Feb-2019
    • (2018)Enhancing efficiency of hybrid transactional memory via dynamic data partitioning schemesProceedings of the 18th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing10.1109/CCGRID.2018.00020(51-61)Online publication date: 1-May-2018
    • (2017)Brief AnnouncementProceedings of the ACM Symposium on Principles of Distributed Computing10.1145/3087801.3087866(251-253)Online publication date: 25-Jul-2017
    • (2017)Revisiting phased transactional memoryProceedings of the International Conference on Supercomputing10.1145/3079079.3079094(1-10)Online publication date: 14-Jun-2017
    • (2017)ReduxSTM: Optimizing STM designs for Irregular ApplicationsJournal of Parallel and Distributed Computing10.1016/j.jpdc.2017.04.009107(114-133)Online publication date: Sep-2017
    • (2016)Conflict Prediction-Based Transaction Execution for Transactional Memory in Multi-core In-memory Databases2016 IEEE International Conference on Cluster Computing (CLUSTER)10.1109/CLUSTER.2016.79(148-149)Online publication date: Sep-2016
    • (2015)Low-overhead software transactional memory with progress guarantees and strong semanticsACM SIGPLAN Notices10.1145/2858788.268851050:8(97-108)Online publication date: 24-Jan-2015
    • 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