This Article 
 Bibliographic References 
 Add to: 
Relaxed Concurrency Control in Software Transactional Memory
July 2012 (vol. 23 no. 7)
pp. 1312-1325
Utku Aydonat, University of Toronto, Toronto
Tarek S. Abdelrahman, University of Toronto, Toronto
Some of today's TM systems implement the two-phase-locking (2PL) algorithm which aborts transactions every time a conflict occurs. 2PL is a simple algorithm that provides fast transactional operations. However, it limits concurrency in benchmarks with high contention because it increases the rate of aborts. We propose the use of a more relaxed concurrency control algorithm to provide better concurrency. This algorithm is based on the conflict-serializability (CS) model. Unlike 2PL, it allows some transactions to commit successfully even when they make conflicting accesses. We implement this algorithm in a STM system and evaluate its performance on 16 cores using standard benchmarks. Our evaluation shows that the algorithm improves the performance of applications with long transactions and high abort rates. Throughput is improved by up to 2.99 times despite the overheads of testing for CS at runtime. These improvements come with little additional implementation complexity and require no changes to the transactional programming model. We also propose an adaptive approach that switches between 2PL and CS to mitigate the overhead in applications that have low abort rates.

[1] B. Saha, A. Adl-Tabatabai, R.L. Hudson, C.C. Minh, and B. Hertzberg, "Mcrt-stm: A High Performance Software Transactional Memory System for a Multi-Core Runtime," Proc. Symp. Principles and Practice of Parallel Programming, pp. 187-197, 2006.
[2] D. Dice and N. Shavit, "What Really Makes Transactions Faster?," Proc. Workshop Transactional Computing, 2006.
[3] V.J. Marathe, M.F. Spear, C. Heriot, A. Acharya, D. Eisenstat, W.N. SchererIII, and M.L. Scott, "Lowering the Overhead of Software Transactional Memory," Technical Report TR 893, Computer Science Dept., Univ. of Rochester, 2006.
[4] M. Herlihy, V. Luchangco, M. Moir, and I.W.N. Scherer, "Software Transactional Memory for Dynamic-Sized Data Structures," Proc. Symp. Principles of Distributed Computing, pp. 92-101, 2003.
[5] T. Riegel, C. Fetzer, and P. Felber, "Snapshot Isolation for Software Transactional Memory," Proc. Workshop Transactional Computing, 2006.
[6] T. Riegel, P. Felber, and C. Fetzer, "A Lazy Snapshot Algorithm with Eager Validation," Proc. Int'l Symp. Distributed Computing, pp. 284-298, 2006.
[7] P. Felber, V. Gramoli, and R. Guerraoui, "Elastic Transactions," Proc. Int'l Symp. Distributed Computing, pp. 93-107, 2009.
[8] R. Guerraoui, T.A. Henzinger, and V. Singh, "Permissiveness in Transactional Memories," Proc. Int'l Symp. Distributed Computing, pp. 305-319, 2008.
[9] B. Carlstrom et al., "Transactional Collection Classes," Proc. Symp. Principles and Practice of Parallel Programming, pp. 56-67, 2007.
[10] T. Skare and C. Kozyrakis, "Early Release: Friend or foe?," Proc. Workshop Transactional Memory Workloads, pp. 45-52, 2006.
[11] Y. Ni, V.S. Menon, A. Adl-Tabatabai, A.L. Hosking, R.L. Hudson, J.E.B. Moss, B. Saha, and T. Shpeisman, "Open Nesting in Software Transactional Memory," Proc. Symp. Principles and Practice of Parallel Programming, pp. 68-78, 2007.
[12] B.D. Carlstrom, A. McDonald, H. Chafi, J. Chung, C.C. Minh, C. Kozyrakis, and K. Olukotun, "The Atomos Transactional Programming Language," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, pp. 1-13, 2006.
[13] T. Connolly and C. Begg, Database Systems: A Practical Approach to Design, Implementation and Management. Addison-Wesley, 2009.
[14] C.H. Papadimitriou, "The Serializability of Concurrent Database Updates," J. ACM, vol. 26, no. 4, pp. 631-653, 1979.
[15] D. Dice, O. Shalev, and N. Shavit, "Transactional Locking II," Proc. Symp. Principles of Distributed Computing, pp. 194-208, 2006.
[16] L. Hammond, V. Wong, M. Chen, B.D. Carlstrom, J.D. Davis, B. Hertzberg, M.K. Prabhu, H. Wijaya, C. Kozyrakis, and K. Olukotun, "Transactional Memory Coherence and Consistency," Proc. Int'l Symp. Computer Architecture, p. 102, 2004.
[17] L. Yen, J. Bobba, M.R. Marty, K.E. Moore, H. Volos, M.D. Hill, M.M. Swift, and D.A. Wood, "LogTM-SE: Decoupling Hardware Transactional Memory from Caches," Proc. Int'l Symp. High Performance Computer Architecture, pp. 261-272, 2007.
[18] C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun, "STAMP: Stanford Transactional Applications for Multi-Processing," Proc. Int'l Symp. Workload Characterization, 2008.
[19] H. Ramadan, I. Roy, M. Herlihy, and E. Witchel, "Committing Conflicting Transactions in an STM," Proc. Symp. Principles and Practice of Parallel Programming, pp. 163-172, 2009.
[20] D. Dice, "Personal Communication," 2007.
[21] U. Aydonat, "Relaxing Concurrency Control in Transactional Memory," PhD thesis, 2011.
[22] J. Lindstrom and K. Raatikainen, "Dynamic Adjustment of Serialization Order Using Timestamp Intervals in Real-time DBMS," Proc. Int'l Conf. Real-Time Computing Systems and Applications, pp. 13-17, 1999.
[23] V. Gramoli, D. Harmanci, and P. Felber, "On the Input Acceptance of Transactional Memory," Parallel Processing Letters, vol. 20, pp. 31-50, 2010.

Index Terms:
Transactional memory, serializability, concurrent programming, synchronization.
Utku Aydonat, Tarek S. Abdelrahman, "Relaxed Concurrency Control in Software Transactional Memory," IEEE Transactions on Parallel and Distributed Systems, vol. 23, no. 7, pp. 1312-1325, July 2012, doi:10.1109/TPDS.2011.287
Usage of this product signifies your acceptance of the Terms of Use.