Abstract
Software transactional memory (STM) is one of the techniques used towards achieving non-blocking process synchronization in multi-threaded computing environment. In spite of its high potential, one of the major limitations of transactional memory (TM) is that in order to ensure data consistency as well as progress condition, TM often forces transactions to abort. This paper proposes a new concurrency control mechanism. It starts with the existing TM implementations for obstruction freedom and eventually builds a new STM methodology. The primary objective is to reduce aborting of transactions in some typical scenarios. A programming model is described for a chain of update transactions that share the same data object among themselves. Using the proposed approach, any new update transaction appended in this chain need not wait for the earlier transactions to finish. The proposed STM allows wait-free, non-blocking implementation of a mix of read and multiple update transactions on the same shared data object with higher throughput.
Highlights
Software transactional memory (STM) [20] is a promising technique to facilitate concurrent programming in modern multi-processor environment
The proposed work designs a new non-blocking algorithm to achieve concurrency control for multi-threaded environment. This non-blocking thread synchronization algorithm is an improvisation of obstruction free transactional memory (OFTM) that focuses on lowering transaction aborts for update-executions in presence of contention
The proposed methodology is based on the foundations of OFTM, while it provides a completely new mechanism for write transactions to execute concurrently while sharing common data object
Summary
Software transactional memory (STM) [20] is a promising technique to facilitate concurrent programming in modern multi-processor environment. One of the major challenges for STM-based solutions is concurrent abort-free execution of transactions maintaining progress condition, and data consistency. One of the notable STM implementations is DSTM (Software Transactional Memory for Dynamic-sized Data Structures) [12] It offers an abort-free non-blocking synchronization approach that guarantees progress when a thread executes in isolation. The propositions either use time stamp from a global clock [6], or maintain multiple versions [5,17], or use conflict serializability scheduling as in [2,4] All these approaches are able to achieve abort-free execution for read-only transactions to some extent. We have proposed a new non-blocking, concurrency control approach for multi-threaded environment.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have