Back to Search Start Over

A comprehensive strategy for contention management in software transactional memory

Authors :
Michael Spear
Virendra J. Marathe
Michael L. Scott
Luke Dalessandro
Source :
PPOPP
Publication Year :
2009
Publisher :
ACM, 2009.

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.

Details

Database :
OpenAIRE
Journal :
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Accession number :
edsair.doi.dedup.....c12663c648551a8bfcf251c26f7088fe