@gron

Design Tradeoffs in Modern Software Transactional Memory Systems

, , and . LCR '04: Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems, page 1--7. New York, NY, USA, ACM, (2004)
DOI: http://doi.acm.org/10.1145/1066650.1066660

Abstract

Software Transactional Memory (STM) is a generic non-blocking synchronization construct that enables automatic conversion of correct sequential objects into correct concurrent objects. Because it is nonblocking, STM avoids traditional performance and correctness problems due to thread failure, preemption, page faults, and priority inversion.In this paper we compare and analyze two recent object-based STM systems, the DSTM of Herlihy et al. and the FSTM of Fraser, both of which support dynamic transactions, in which the set of objects to be modified is not known in advance. We highlight aspects of these systems that lead to performance tradeoffs for various concurrent data structures. More specifically, we consider object ownership acquisition semantics, concurrent object referencing style, the overhead of ordering and bookkeeping, contention management versus helping semantics, and transaction validation. We demonstrate for each system simple benchmarks on which it outperforms the other by a significant margin. This in turn provides us with a preliminary characterization of the applications for which each system is best suited.

Description

Design tradeoffs in modern software transactional memory systems

Links and resources

Tags