A Qualitative Survey of Modern Software Transactional Memory Systems∗
Virendra J. Marathe and Michael L. Scott
TR 839 Department of Computer Science University of Rochester Rochester, NY 14627-0226
{vmarathe, scott}@cs.rochester.edu
June 2004
Abstract Software Transactional Memory (STM) can be defined as a generic nonblocking synchroniza- tion construct that allows correct sequential objects to be converted automatically into correct concurrent objects. In STM, a transaction is defined as a sequence of instructions that atomi- cally modifies a set of concurrent objects. The original STM proposed by Shavit and Touitou worked on static transactions (wherein the concurrent objects being accessed by a transaction were pre-determined). Recent STM research has focused on support for more realistic dynamic transactions. In this paper we present a qualitative survey of modern STM systems that support dynamic
- transactions. More concretely, we describe the designs of three STM systems—a hash table
based STM system (Hash table STM) for shared memory words due to Harris and Fraser, and two purely object-based STM systems, one due to Herlihy et al., the other due to Fraser. We also present a detailed analysis of the Hash table STM and a qualitative comparison between the two
- bject-based STM systems. We identify a scalability drawback (that may be unacceptable in
some applications) in the Hash table STM and propose an LL/SC based variant that overcomes this drawback. The qualitative comparison between the two object-based STM systems helps us understand their various design peculiarities and the potential tradeoffs involved. Specifically, we discuss object ownership acquire semantics, levels of indirection to access concurrent objects, space utilization, transaction search overhead during conflict resolution, transaction validation semantics, and contention management versus helping.
∗This work was supported in part by NSF grants numbers EIA-0080124, CCR-9988361, and CCR-0204344, by