  In the modern era of multi-core systems, the main aim is to utilize the cores
properly. This utilization can be done by concurrent programming. But
developing a flawless and well-organized concurrent program is difficult.
Software Transactional Memory Systems (STMs) are a convenient programming
interface which assist the programmer to access the shared memory concurrently
without worrying about consistency issues such as priority-inversion, deadlock,
livelock, etc. Another important feature that STMs facilitate is
compositionality of concurrent programs with great ease. It composes different
concurrent operations in a single atomic unit by encapsulating them in a
transaction. Many STMs available in the literature execute read/write primitive
operations on memory buffers. We represent them as Read-Write STMs or RWSTMs.
Whereas, there exist some STMs (transactional boosting and its variants) which
work on higher level operations such as insert, delete, lookup, etc. on a
hash-table. We refer these STMs as Object Based STMs or OSTMs. The literature
of databases and RWSTMs say that maintaining multiple versions ensures greater
concurrency. This motivates us to maintain multiple version at higher level
with object semantics and achieves greater concurrency. So, this paper
pro-poses the notion of Optimized Multi-version Object Based STMs or
OPT-MVOSTMs which encapsulates the idea of multiple versions in OSTMs to
harness the greater concurrency efficiently.
