Reducing Rollbacks of Transactional Memory Using Ordered Shared Locks
2009; Springer Science+Business Media; Linguagem: Inglês
10.1007/978-3-642-03869-3_66
ISSN1611-3349
AutoresKen Mizuno, Takuya Nakaike, Toshio Nakatani,
Tópico(s)Parallel Computing and Optimization Techniques
ResumoTransactional 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.
Referência(s)