In this dissertation, we present mechanisms that make software TM fast while increasing its value as an end-user programming abstraction. To lower latency, we introduce a heuristic to avoid in-flight consistency checks, compiler optimizations to reduce the cost of memory ordering, and a new TM algorithm that uses Bloom filters to eliminate read-modify-write instructions. To improve scalability, we introduce a comprehensive strategy for livelock and starvation avoidance. To increase generality, we propose scalable mechanisms for I/O within transactions, and we introduce a language-level semantics for TM based on ordering rather than locks.
This talk describes RingSTM, the TM based on Bloom filters. Evaluation shows performance on par with other TM algorithms for a wide variety of workloads. Additionally, RingSTM guarantees progress and provides stronger semantics than most TM algorithms. Furthermore, it offers promising opportunities for hardware acceleration, increasing the likelihood that TM will achieve widespread use.