Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

A comprehensive strategy for contention management in software transactional memory

Published: 14 February 2009 Publication History

Abstract

In Software Transactional Memory (STM), contention management refers to the mechanisms used to ensure forward progress--to avoid livelock and starvation, and to promote throughput and fairness. Unfortunately, most past approaches to contention management were designed for obstruction-free STM frameworks, and impose significant constant-time overheads. Priority-based approaches in particular typically require that reads be visible to all transactions, an expensive property that is not easy to support in most STM systems.
In this paper we present a comprehensive strategy for contention management via fair resolution of conflicts in an STM with invisible reads. Our strategy depends on (1) lazy acquisition of ownership, (2) extendable timestamps, and (3) an efficient way to capture both priority and conflicts. We introduce two mechanisms--one using Bloom filters, the other using visible read bits--that implement point (3). These mechanisms unify the notions of conflict resolution, inevitability, and transaction retry. They are orthogonal to the rest of the contention management strategy, and could be used in a wide variety of hardware and software TM systems. Experimental evaluation demonstrates that the overhead of the mechanisms is low, particularly when conflicts are rare, and that our strategy as a whole provides good throughput and fairness, including livelock and starvation freedom, even for challenging workloads.

References

[1]
M. Abadi, A. Birrell, T. Harris, and M. Isard. Semantics of Transactional Memory and Automatic Mutual Exclusion. In Conf. Record of the 35th ACM Symp. on Principles of Programming Languages, San Francisco, CA, Jan. 2008.
[2]
B. H. Bloom. Space/Time Trade-Off in Hash Coding with Allowable Errors. Comm. of the ACM, 13(7):422--426, July 1970.
[3]
J. Bobba, K. E. Moore, H. Volos, L. Yen, M. D. Hill, M. M. Swift, and D. A.Wood. Performance Pathologies in Hardware Transactional Memory. In Proc. of the 34th Intl. Symp. on Computer Architecture, San Diego, CA, June 2007.
[4]
D. Dice, O. Shalev, and N. Shavit. Transactional Locking II. In Proc. of the 20th Intl. Symp. on Distributed Computing, Stockholm, Sweden, Sept. 2006.
[5]
A. Dragojević, R. Guerraoui, and M. Kapałka. Dividing Transactional Memories by Zero. In Proc. of the 3rd ACM SIGPLAN Workshop on Transactional Computing, Salt Lake City, UT, Feb. 2008.
[6]
P. Felber, T. Riegel, and C. Fetzer. Dynamic Performance Tuning of Word-Based Software Transactional Memory. In Proc. of the 13th ACM Symp. on Principles and Practice of Parallel Programming, Salt Lake City, UT, Feb. 2008.
[7]
J. Gottschlich and D. A. Connors. Extending Contention Managers for User-Defined Priority-Based Transactions. In Workshop on Exploiting Parallelism with Transactional Memoryand other Hardware Assisted Methods (EPHAM), Boston, MA, Apr. 2008. In conjunction with phCGO.
[8]
R. Guerraoui, M. Herlihy, and B. Pochon. Toward a Theory of Transactional Contention Managers. In Proc. of the 24th ACM Symp. on Principles of Distributed Computing, Las Vegas, NV, Aug. 2005.
[9]
T. Harris, S. Marlow, S. P. Jones, and M. Herlihy. Composable Memory Transactions. In Proc. of the 10th ACM Symp. on Principles and Practice of Parallel Programming, Chicago, IL, June 2005.
[10]
M. Herlihy, V. Luchangco, M. Moir, and W. N. Scherer III. Software Transactional Memory for Dynamic-sized Data Structures. In Proc. of the 22nd ACM Symp. on Principles of Distributed Computing, Boston, MA, July 2003.
[11]
V. J. Marathe, M. F. Spear, C. Heriot, A. Acharya, D. Eisenstat, W. N.Scherer III, and M. L. Scott. Lowering the Overhead of Software Transactional Memory. In Proc. of the 1st ACM SIGPLAN Workshop on Transactional Computing, Ottawa, ON, Canada, June 2006. Expanded version available as TR 893, Dept. of Computer Science, Univ. of Rochester, Mar. 2006.
[12]
V. Menon, S. Balensiefer, T. Shpeisman, A.-R. Adl-Tabatabai, R. L. Hudson, B. Saha, and A. Welc. Practical Weak-Atomicity Semantics for Java STM. In Proc. of the 20th Annual ACM Symp. on Parallelism in Algorithms and Architectures, Munich, Germany, June 2008.
[13]
K. F. Moore and D. Grossman. High-Level Small-Step Operational Semantics for Transactions. In Conf. Record of the 35th ACM Symp. on Principles of Programming Languages, San Francisco, CA, Jan. 2008.
[14]
M. Olszewski, J. Cutler, and J. G. Steffan. Judo STM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory. In Proc. of the 16th Intl. Conf. on Parallel Architectures and Compilation Techniques, Brasov, Romania, Sept. 2007.
[15]
T. Riegel, C. Fetzer, and P. Felber. Time-based Transactional Memory with Scalable Time Bases. In Proc. of the 19th Annual ACM Symp. on Parallelism in Algorithms and Architectures, San Diego, CA, June 2007.
[16]
W. N. Scherer III and M. L. Scott. Advanced Contention Management for Dynamic Software TransactionalMemory. In Proc. of the 24th ACM Symp. on Principles of Distributed Computing, Las Vegas, NV, July 2005.
[17]
Y. Smaragdakis, A. Kay, R. Behrends, and M. Young. Transactions with Isolation and Cooperation. In Proc. of the 22nd OOPSLA, Montréal, PQ, Canada, Oct.2007.
[18]
M. F. Spear, V. J. Marathe, W. N. Scherer III, and M. L. Scott. Conflict Detection and Validation Strategies for Software Transactional Memory. In Proc. of the 20th Intl. Symp. on Distributed Computing, Stockholm, Sweden, Sept. 2006.
[19]
M. F. Spear, M. Silverman, L. Dalessandro, M. M. Michael, and M. L. Scott. Implementing and Exploiting Inevitability in Software Transactional Memory. In Proc. of the 2008 Intl. Conf. on Parallel Processing, Portland, OR, Sept. 2008.
[20]
M. F. Spear, M. M. Michael, and M. L. Scott. Inevitability Mechanisms for Software Transactional Memory. In Proc. of the 3rd ACM SIGPLAN Workshop on Transactional Computing, Salt Lake City, UT, Feb. 2008.
[21]
M. F. Spear, L. Dalessandro, V. J. Marathe, and M. L. Scott. Ordering-Based Semantics for Software Transactional Memory. In Proc. of the 12th Intl. Conf. on Principles of Distributed Systems, Luxor, Egypt, Dec. 2008.
[22]
M. F. Spear, M. M. Michael, and C. von Praun. RingSTM: Scalable Transactions with a Single Atomic Instruction. In Proc. of the 20th Annual ACM Symp. on Parallelism inAlgorithms and Architectures, Munich, Germany, June 2008.
[23]
M. F. Spear, A. Sveikauskas, and M. L. Scott. Transactional Memory Retry Mechanisms (Brief Announcement). In Proc. of the 27th ACM Symp. on Principles of Distributed Computing, Toronto, ON, Canada, Aug. 2008. Extended version available as TR 935, Dept. ofComputer Science, Univ. of Rochester, July 2008.
[24]
A. Welc, B. Saha, and A.-R. Adl-Tabatabai. Irrevocable Transactions and Their Applications. In Proc. of the 20th Annual ACM Symp. on Parallelism in Algorithms and Architectures, Munich, Germany, June 2008.
[25]
C. Zilles and R. Rajwar. Transactional Memory and the Birthday Paradox (Brief Announcement). In Proc. of the 19th Annual ACM Symp. on Parallelism in Algorithms and Architectures, San Diego, CA, June 2007.

Cited By

View all
  • (2022)CSMV: A Highly Scalable Multi-Versioned Software Transactional Memory for GPUs2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS53621.2022.00057(526-536)Online publication date: May-2022
  • (2022)Design and implementation of a fully transparent partial abort support for software transactional memorySoftware: Practice and Experience10.1002/spe.313452:11(2456-2475)Online publication date: 8-Aug-2022
  • (2021)PETRAACM Transactions on Architecture and Code Optimization10.1145/344639118:2(1-26)Online publication date: 8-Mar-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 44, Issue 4
PPoPP '09
April 2009
294 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1594835
Issue’s Table of Contents
  • cover image ACM Conferences
    PPoPP '09: Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
    February 2009
    322 pages
    ISBN:9781605583976
    DOI:10.1145/1504176
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: 14 February 2009
Published in SIGPLAN Volume 44, Issue 4

Check for updates

Author Tags

  1. condition synchronization
  2. contention management
  3. inevitability
  4. priority
  5. software transactional memory

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)22
  • Downloads (Last 6 weeks)4
Reflects downloads up to 21 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2022)CSMV: A Highly Scalable Multi-Versioned Software Transactional Memory for GPUs2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS53621.2022.00057(526-536)Online publication date: May-2022
  • (2022)Design and implementation of a fully transparent partial abort support for software transactional memorySoftware: Practice and Experience10.1002/spe.313452:11(2456-2475)Online publication date: 8-Aug-2022
  • (2021)PETRAACM Transactions on Architecture and Code Optimization10.1145/344639118:2(1-26)Online publication date: 8-Mar-2021
  • (2020)Convoider: A Concurrency Bug Avoider Based on Transparent Software Transactional MemoryInternational Journal of Parallel Programming10.1007/s10766-019-00642-148:1(32-60)Online publication date: 1-Feb-2020
  • (2019)Concurrency Bug Avoiding Based on Optimized Software Transactional MemoryScientific Programming10.1155/2019/94043232019Online publication date: 1-Jan-2019
  • (2019)Optimizing Persistent Memory Transactions2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT.2019.00025(219-231)Online publication date: Sep-2019
  • (2019)Achieving Starvation-Freedom with Greater Concurrency in Multi-Version Object-based Transactional Memory SystemsStabilization, Safety, and Security of Distributed Systems10.1007/978-3-030-34992-9_17(209-227)Online publication date: 14-Nov-2019
  • (2019)Achieving Starvation-Freedom in Multi-version Transactional Memory SystemsNetworked Systems10.1007/978-3-030-31277-0_20(291-310)Online publication date: 19-Jun-2019
  • (2018)STMs in practice: Partial rollback vs pure abort mechanismsConcurrency and Computation: Practice and Experience10.1002/cpe.446531:5Online publication date: 12-Mar-2018
  • (2017)Hybridizing and Relaxing Dependence Tracking for Efficient Parallel Runtime SupportACM Transactions on Parallel Computing10.1145/31081384:2(1-42)Online publication date: 30-Aug-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