An Efficient Lock-Aware Transactional Memory Implementation [
abstract] (
PDF)
Justin E. Gottschlich, Jeremy G. Siek, Manish Vachharajani, Dwight Y. Winkler, and Daniel A. ConnorsProceedings of the 2009 ACM International Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS). In conjunction with ECOOP. , July 2009.
Transactional memory (TM) is an emerging concurrency control
mechanism that provides a simple and composable programming
model. Unfortunately, transactions violate the semantics of mutual
exclusion locks when they execute concurrently. Due to the prevalence
of locks, transactions must be made lock-aware enabling
them to correctly interoperate with locks.
We present a lock-aware transactional memory (LATM) system
that employs a unique communication method using local knowledge
of locks coupled with granularity-based policies. Our system
allows higher concurrent throughput than prior systems because it
only prevents truly conflicting critical sections from executing concurrently.
Furthermore, our system relaxes the prior requirement of
transaction isolation when executing conflicting transactional critical
sections and instead runs these transactions as irrevocable, improving
transaction concurrency. We demonstrate our performance
improvements mathematically and empirically.
Our system also advances LATM research in terms of program
consistency. This is achieved by detecting potential deadlocks at
run-time and aborting the programs that contain them. Prior systems
break deadlocks, which reveal partially executed critical sections
to other threads, thereby violating mutual exclusion. Because
our system disallows deadlocks, it does not suffer from mutual exclusion
violations, improving program consistency.