The advent of multicore processors has put the performance of
traditional parallel programming techniques in question. The traditional
lock-based parallel programming techniques are error prone and suffer
from various problems such as deadlocks, live-locks, priority inversion
etc. In the last one and half decade, a considerable amount of the
research has been carried out to achieve the synchronization among the
parallel applications without using locking. One of most promising
technique which has come out as a result of this research work is
Transactional Memory (TM). Transactional Memory system commits the data
in atomic code sequences called the transaction. In order to understand
the design and implementation trade-offs of different implementations of
the Software Transactional Memory, a comprehensive comparative study is
required. Although some comparative studies have been carried out in the
past, they were very focused in their scope and covered only few STM
implementations. In this report, a qualitative literature survey is
conducted and the state of the art in Software Transactional Memory is
presented, covering prominent approaches to date.