An Efficient Approach to Achieve Compositionality using Optimized Multi-Version Object Based Transactional Systems

2021 
Abstract 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 versions at higher level with object semantics and achieves greater concurrency. So, this paper proposes 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. For efficient memory utilization, we develop two variants of OPT-MVOSTMs. First, OPT-MVOSTM with garbage collection (or OPT-MVOSTM-GC) which uses unbounded versions but performs garbage collection scheme to delete the unwanted versions. Second, finite version OPT-MVOSTM (or OPT-KOSTM) which maintains at most K versions by replacing the oldest version when ( K + 1 ) th version is created by the current transaction. We propose the OPT-MVOSTMs for hash-table and list objects as OPT-HT-MVOSTM and OPT-list-MVOSTM, respectively. For memory utilization, we propose two variants of both the algorithms as OPT-HT-MVOSTM-GC, OPT-HT-KOSTM and OPT-list-MVOSTM-GC, OPT-list-KOSTM, respectively. OPT-HT-KOSTM performs best among its variants and outperforms state-of-the-art hash-table based STMs (HT-OSTM, ESTM, RWSTM, HT-MVTO, HT-MVTO-GC, HT-KSTM) by a factor of 3.62, 3.95, 3.44, 2.75, 2.11, 1.85 for workload W1 (90% lookup, 5% insert and 5% delete), 1.44, 2.36, 4.45, 9.84, 8.91, 7.42 for workload W2 (50% lookup, 25% insert and 25% delete), and 2.11, 4.05, 7.84, 12.94, 11.45, 10.70 for workload W3 (10% lookup, 45% insert and 45% delete), respectively. Similarly, OPT-list-KOSTM performs best among its variants and outperforms state-of-the-art list based STMs (list-OSTM, Trans-list, Boosting-list, NOrec-list, list-MVTO, list-MVTO-GC, list-KSTM) by a factor of 2.56, 25.38, 23.57, 27.44, 13.34, 8.65, 5.99 for W1, 1.51, 20.54, 24.27, 29.45, 24.89, 22.34, 19.78 for W2, and 2.91, 32.88, 28.45, 40.89, 173.92, 156.67, 124.89 for W3, respectively. We rigorously proved that OPT-MVOSTMs satisfy opacity and ensure that transaction with lookup only methods will never return abort while maintaining unbounded versions.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    24
    References
    0
    Citations
    NaN
    KQI
    []