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.
- J. H. Anderson and M. Moir. Universal Constructions for Large Objects. In Proceedings of the 9th International Workshop on Distributed Algorithms, pages 168--182. Springer-Verlag, 1995. Google ScholarDigital Library
- J. H. Anderson and M. Moir. Universal Constructions for Multi-Object Operations. In Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing, pages 184--193, 1995. Google ScholarDigital Library
- G. Barnes. A Method for Implementing Lock-Free Shared Data Structures. In Proceedings of the 5th Annual ACM Symposium on Parallel Algorithms and Architectures, pages 261--270, 1993. Google ScholarDigital Library
- C. Cole and M. P. Herlihy. Snapshots and Software Transactional Memory. In Proceedings of Workshop on Concurrency and Synchronization in Java Programs, 2004.Google Scholar
- K. Fraser. Practical Lock-Freedom. Technical Report UCAM-CL-TR-579, Cambridge University Computer Laboratory, February 2004.Google Scholar
- K. Fraser and T. Harris. Concurrent Programming without Locks. Submitted for publication.Google Scholar
- T. Harris and K. Fraser. Language Support for Lightweight Transactions. In Proceedings of 18th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 388--402, 2003. Google ScholarDigital Library
- M. P. Herlihy, V. Luchangco, and M. Moir. Obstruction Free Synchronization: Double-Ended Queues as an Example. In Proceedings of 23rd International Conference on Distributed Computing Systems, pages 522--529, May 2003. Google ScholarDigital Library
- M. P. Herlihy, V. Luchangco, M. Moir, and W. N. Scherer III. Software Transactional Memory for Dynamic-sized Data Structures. In Proceedings of 22nd Annual ACM Symposium on Principles of Distributed Computing, July 2003. Google ScholarDigital Library
- M. P. Herlihy and J. E. B. Moss. Transactional Memory: Architectural Support for Lock-Free Data Structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 289--300, May 1993. Google ScholarDigital Library
- M. P. Herlihy and J. M. Wing. Linearizability: a Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems, 12(3):463--492, 1990. Google ScholarDigital Library
- A. Israeli and L. Rappoport. Disjoint-Access-Parallel Implementations of Strong Shared Memory Primitives. In Proceedings of the 13th Annual ACM Symposium on Principles of Distributed Computing, pages 151--160, 1994. Google ScholarDigital Library
- D. Lea. Concurrency JSR-166 Interest Site. http://gee.cs.oswego.edu/dl/concurrency-interest/.Google Scholar
- V. J. Marathe and M. L. Scott. A Qualitative Survey of Modern Software Transactional Memory Systems. Technical Report TR 839, Department of Computer Science, University of Rochester, June 2004.Google Scholar
- W. N. Scherer III and M. L. Scott. Contention Management in Dynamic Software Transactional Memory. In Proceedings of Workshop on Concurrency and Synchronization in Java Programs, pages 70--79, 2004.Google Scholar
- N. Shavit and D. Touitou. Software Transactional Memory. In Proceedings of 14th Annual ACM Symposium on Principles of Distributed Computing, pages 204--213, 1995. Google ScholarDigital Library
- J. M. Stone, H. S. Stone, P. Heidelberger, and J. Turek. Multiple Reservations and the Oklahoma Update. IEEE Parallel and Distributed Technology, 1(4):58--71, November 1993. Google ScholarDigital Library
- J. Turek, D. Shasha, and S. Prakash. Locking without Blocking: Making Lock Based Concurrent Data Structure Algorithms Nonblocking. In Proceedings of the 11th ACM Symposium on Principles of Database Systems, pages 212--222, 1992. Google ScholarDigital Library
Recommendations
Time-Based Software Transactional Memory
Software transactional memory (STM) is a concurrency control mechanism that is widely considered to be easier to use by programmers than other mechanisms such as locking. The first generations of STMs have either relied on visible read designs, which ...
Tradeoffs in transactional memory virtualization
Proceedings of the 2006 ASPLOS ConferenceFor transactional memory (TM) to achieve widespread acceptance, transactions should not be limited to the physical resources of any specific hardware implementation. TM systems should guarantee correct execution even when transactions exceed scheduling ...
Open nesting in software transactional memory
PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programmingTransactional memory (TM) promises to simplify concurrent programming while providing scalability competitive to fine-grained locking. Language-based constructs allow programmers to denote atomic regions declaratively and to rely on the underlying ...
Comments