Abstract
Software Transactional Memory (STM) is a generic synchronization construct that enables automatic conversion of correct sequential objects into correct nonblocking concurrent objects. Recent STM systems, though significantly more practical than their predecessors, display inconsistent performance: differing design decisions cause different systems to perform best in different circumstances, often by dramatic margins. In this paper we consider four dimensions of the STM design space: (i) when concurrent objects are acquired by transactions for modification; (ii) how they are acquired; (iii) what they look like when not acquired; and (iv) the non-blocking semantics for transactions (lock-freedom vs. obstruction-freedom). In this 4-dimensional space we highlight the locations of two leading STM systems: the DSTM of Herlihy et al. and the OSTM of Fraser and Harris. Drawing motivation from the performance of a series of application benchmarks, we then present a new Adaptive STM (ASTM) system that adjusts to the offered workload, allowing it to match the performance of the best known existing system on every tested workload.
This work was supported in part by NSF grant numbers EIA-0080124, CCR-9988361, and CCR-0204344, by DARPA/AFRL contract number F29601-00-K-0182, and by financial and equipment grants from Sun Microsystems Laboratories.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Barnes, G.: A Method for Implementing Lock-Free Shared Data Structures. In: Proc. of the 5th Ann. ACM Symp. on Parallel Algorithms and Architectures, pp. 261–270 (1993)
Fraser, K.: Practical Lock-Freedom. Technical Report UCAM-CL-TR-579, Cambridge University Computer Laboratory (February 2004)
Fraser, K., Harris, T.: Concurrent Programming without Locks (2004) (submitted for publication)
Guerraoui, R., Herlihy, M.P., Pochon, B.: Toward a Theory of Transactional Contention Managers. In: Proc. of 24th Ann. ACM Symp. on Principles of Distributed Computing (July 2005)
Harris, T., Fraser, K.: Language Support for Lightweight Transactions. In: Proc. of 18th Ann. ACM Conf. on Object-Oriented Prog., Sys., Langs., and Apps. (October 2003)
Herlihy, M.P.: A Methodology for Implementing Highly Concurrent Data Structures. In: Proc. of the 2nd ACM Symp. on Principles & Practice of Parallel Prog. (March 1990)
Herlihy, M.P., Luchangco, V., Moir, M.: Obstruction Free Synchronization: Double-Ended Queues as an Example. In: Proc. of 23rd Intl. Conf. on Distributed Computing Sys., May 2003, pp. 522–529 (2003)
Herlihy, M.P., Luchangco, V., Moir, M., Scherer III, W.N.: Software Transactional Memory for Dynamic-sized Data Structures. In: Proc. of 22nd Ann. ACM Symp. on Principles of Distributed Computing (July 2003)
Herlihy, M.P., Moss, J.E.B.: Transactional Memory: Architectural Support for Lock-Free Data Structures. In: Proc. of the 20th Ann. Intl. Symp. on Computer Architecture, May 1993, pp. 289–300 (1993)
Herlihy, M.P., Wing, J.M.: Linearizability: a Correctness Condition for Concurrent Objects. ACM Trans. on Prog. Langs. and Sys. 12(3), 463–492 (1990)
Israeli, A., Rappoport, L.: Disjoint-Access-Parallel Implementations of Strong Shared Memory Primitives. In: Proc. of the 13th Ann. ACM Symp. on Principles of Distributed Computing, pp. 151–160 (1994)
Lea, D.: Concurrency JSR-166 Interest Site, http://gee.cs.oswego.edu/dl/concurrency-interest/
Marathe, V.J., Scherer III, W.N., Scott, M.L.: Design Tradeoffs in Modern Software Transactional Memory Systems. In: Proc. of 14th Workshop on Langs., Compilers, and Run-time Support for Scalable Sys. (October 2004)
Marathe, V.J., Scherer III, W.N., Scott, M.L.: Adaptive Software Transactional Memory. Technical Report TR 868, Dept. of Computer Science, University of Rochester (May 2005)
Moir, M.: Transparent Support for Wait-Free Transactions. In: Mavronicolas, M. (ed.) WDAG 1997. LNCS, vol. 1320, pp. 305–319. Springer, Heidelberg (1997)
Robinson, J.T., Devarakonda, M.V.: Data Cache Management Using Frequency-Based Replacement. In: Proc. of the 1990 ACM SIGMETRICS Conf. on Measurement and Modeling of Computer Sys., pp. 134–142 (1990)
Scherer III, W.N., Scott, M.L.: Contention Management in Dynamic Software Transactional Memory. In: Proc. of Workshop on Concurrency and Synchronization in Java Progs., July 2004, pp. 70–79 (2004)
Scherer III, W.N., Scott, M.L.: Advanced Contention Management in Dynamic Software Transactional Memory. In: Proc. of 24th Ann. ACM Symp. on Principles of Distributed Computing (July 2005)
Shavit, N., Touitou, D.: Software Transactional Memory. In: Proc. of 14th Ann. ACM Symp. on Principles of Distributed Computing, August 1995, pp. 204–213 (1995)
Stone, J.M., Stone, H.S., Heidelberger, P., Turek, J.: Multiple Reservations and the Oklahoma Update. IEEE Parallel and Distributed Technology 1(4), 58–71 (1993)
Turek, J., Shasha, D., Prakash, S.: Locking without Blocking: Making Lock Based Concurrent Data Structure Algorithms Nonblocking. In: Proc. of the 11th ACM Symp. on Principles of Database Sys., pp. 212–222 (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Marathe, V.J., Scherer, W.N., Scott, M.L. (2005). Adaptive Software Transactional Memory. In: Fraigniaud, P. (eds) Distributed Computing. DISC 2005. Lecture Notes in Computer Science, vol 3724. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561927_26
Download citation
DOI: https://doi.org/10.1007/11561927_26
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29163-3
Online ISBN: 978-3-540-32075-3
eBook Packages: Computer ScienceComputer Science (R0)