Abstract
Transactional Memory (TM) is a concurrency control mechanism that aims to simplify concurrent programming with reasonable scalability. Programmers can simply specify the code regions that access the shared data, and then a TM system executes them as transactions. However, programmers often need to modify the application logic to achieve high scalability on TM. If there is any variable that is frequently updated in many transactions, the program does not scale well on TM.
We propose an approach that uses ordered shared locks in TM systems to improve the scalability of such programs. The ordered shared locks allow multiple transactions to update a shared variable concurrently without causing rollbacks or blocking until other transactions finish. Our approach improves the scalability of TM by applying the ordered shared locks to variables that are frequently updated in many transactions, while being accessed only once in each transaction. We implemented our approach on a software TM (STM) system for Java. In our experiments, it improved the performance of an hsqldb benchmark by 157% on 8 threads and by 45% on 16 threads compared to the original STM system.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Herlihy, M., Moss, J.E.B.: Transactional Memory: Architectural Support for Lock-Free Data Structures. In: 20th Annual International Symposium on Computer Architecture, pp. 289–300. ACM Press, New York (1993)
Hammond, L., Wong, V., Chen, M.K., Carlstrom, B.D., Davis, J.D., Hertzberg, B., Prabhu, M.K., Wijaya, H., Kozyrakis, C., Olukotun, K.: Transactional Memory Coherence and Consistency. In: 31st Annual International Symposium on Computer Architecture, pp. 102–113. ACM Press, New York (2004)
Fraser, K., Harris, T.: Concurrent Programming Without Locks. ACM Trans. Comput. Syst. 25(2), 1–61 (2007)
Agrawal, D., Abbadi, A.E.: Locks with Constrained Sharing. In: 9th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pp. 85–93. ACM Press, New York (1990)
Agrawal, D., Abbadi, A.E., Lang, A.E.: The Performance of Protocols Based on Locks with Ordered Sharing. IEEE Trans. Knowl. Data Eng. 6(5), 805–818 (1994)
Agrawal, D., Abbadi, A.E., Jeffers, R., Lin, L.: Ordered Shared Locks for Real-Time Databases. VLDB J. 4(1), 87–126 (1995)
Breitbart, Y., Garcia-Molina, H., Silberschatz, A.: Overview of Multidatabase Transaction Management. VLDB J. 1(2), 181–239 (1992)
XL C/C++ for Transactional Memory for AIX, http://www.alphaworks.ibm.com/tech/xlcstm/
Harris, T., Fraser, K.: Language Support for Lightweight Transactions. In: 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, pp. 388–402. ACM Press, New York (2003)
Adl-Tabatabai, A.R., Lewis, B.T., Menon, V., Murphy, B.R., Saha, B., Shpeisman, T.: Compiler and Runtime Support for Efficient Software Transactional Memory. In: ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, pp. 26–37. ACM Press, New York (2006)
Shpeisman, T., Menon, V., Adl-Tabatabai, A.R., Balensiefer, S., Grossman, D., Hudson, R.L., Moore, K.F., Saha, B.: Enforcing Isolation and Ordering in STM. In: ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation, pp. 78–88. ACM Press, New York (2007)
Saha, B., Adl-Tabatabai, A.-R., Hudson, R.L., Minh, C.C., Hertzberg, B.: McRT-STM: A High Performance Software Transactional Memory System for a Multi-Core Runtime. In: 11th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 187–197. ACM Press, New York (2006)
Menon, V., Balensiefer, S., Shpeisman, T., Adl-Tabatabai, A.R., Hudson, R.L., Saha, B., Welc, A.: Practical Weak-Atomicity Semantics for Java STM. In: 20th Annual ACM Symposium on Parallel Algorithms and Architectures, pp. 314–325. ACM Press, New York (2008)
SPECjbb2005, http://www.spec.org/jbb2005/
hsqldb, http://hsqldb.org/
The DaCapo benchmark suite, http://dacapobench.org/
Chung, J., Minh, C.C., Carlstrom, B.D., Kozyrakis, C.: Parallelizing SPECjbb2000 with Transactional Memory. In: Workshop on Transactional Memory Workloads (2006)
Moss, J.E.B., Hosking, A.L.: Nested Transactional Memory: Model and Architecture Sketches. Sci. Comput. Program. 63(2), 186–201 (2006)
Harris, T., Stipic, S.: Abstract Nested Transactions. In: The 2nd ACM SIGPLAN Workshop on Transactional Computing, TRANSACT 2007 (2007)
Guerraoui, R., Kapalka, M.: On the Correctness of Transactional Memory. In: 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 175–184. ACM, New York (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mizuno, K., Nakaike, T., Nakatani, T. (2009). Reducing Rollbacks of Transactional Memory Using Ordered Shared Locks. In: Sips, H., Epema, D., Lin, HX. (eds) Euro-Par 2009 Parallel Processing. Euro-Par 2009. Lecture Notes in Computer Science, vol 5704. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03869-3_66
Download citation
DOI: https://doi.org/10.1007/978-3-642-03869-3_66
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-03868-6
Online ISBN: 978-3-642-03869-3
eBook Packages: Computer ScienceComputer Science (R0)