Rui Zhang, Commit phase and composability in software transactional memory

Transactional Memory (TM) has emerged as a promising high-level programming model for the new and omnipresent multicore machines. TM allows the programmer to think in terms of transactions, operations that are guaranteed to perform atomically without introducing expensive and deadlock-prone coarse-grain locking. Unfortunately, the mechanisms in current STM implementations that enforce the fundamental properties of transactions - atomicity, consistency, and isolation - also introduce considerable performance overhead.

I will talk about two issues related to performance optimizations of STM systems. In the first part, I will discuss the commit phase design in timestamp-based Software Transactional Memory (STM) systems. I will talk about several commit sequence designs, prove their correctness, and analyze their performance. This includes cases where timestamps do not have to be unique for different transactions committing concurrently and cases where unnecessary updates of the global shared counter - which can trigger extra validations in other transactions, hurting performance - can be avoided.

In the second part, I will talk about a composability problem when programmers leverage application-specific knowledge to improve STM applications' performance. We propose two STM system extensions to provide transaction composability in the presence of direct shared memory reads by transactions. Our proposed extensions give the programmer a similar level of flexibility and performance when optimizing the STM application as the existing practices, while preserving composability.