Like multicore hardware, the concurrency control mechanism known as transactional memory (TM) has already been accepted as mainline; it now is present in GCC, arguably the most important open-source C/C++ compiler today, as well as in most popular commodity hardware. Although many innovations can be expected to emerge from TM research, TM already, is a standard in the toolkit of many programmers. The naive programmer who tries to use TM, will, however, be disappointed to find that its limitations render it inefficient in many common workloads. To address these limitations, this thesis proposes the use of consistency oblivious programming (COP) methodology to design data structures with TM, both in hardware and in the compiler, so as to yield good performance and scalability in programs where TM alone had not previously been useful.
Towards Consistency Oblivious Programming. Yehuda Afek, Hillel Avni and Nir Shavit. OPODIS'11.
Leaplist: Lessons Learned in Designing TM-Supported Range Queries. Hillel Avni, Nir Shavit and Adi Suissa. PODC'13.
TM-Pure in GCC Compiler Allows Consistency Oblivious Composition. Hillel Avni. DMTM'14.
Improving HTM Scaling with Consistency-Oblivious Programming. Hillel Avni and Bradley C. Kuszmaul. TRANSACT'14.
Following is the source code for the COP data structures, and their plain TM counterparts, with a simple benchmark for each.