Using Nesting to Push the Limits of Transactional Data Structure Libraries

  title={Using Nesting to Push the Limits of Transactional Data Structure Libraries},
  author={Gal Assa and Hagar Meir and Guy Golan-Gueta and Idit Keidar and Alexander Spiegelman},
Transactional data structure libraries (TDSL) combine the ease-of-programming of transactions with the high performance and scalability of custom-tailored concurrent data structures. They can be very efficient thanks to their ability to exploit data structure semantics in order to reduce overhead, aborts, and wasted work compared to general-purpose software transactional memory. However, TDSLs were not previously used for complex use-cases involving long transactions and a variety of data… 

Figures and Tables from this paper

Nesting and composition in transactional data structure libraries
This work builds a Java TDSL with built-in support for nesting in a number of data structures, and shows that the library outperforms TL2 twofold without nesting, and by up to 16x when nesting is used.


Transactional data structure libraries
This work designs and implements a library supporting transactions on any number of maps, sets, and queues, and treats stand-alone data structure operations as first class citizens, and allows them to execute with virtually no overhead, at the speed of the original data structure library.
Lock-free Transactions without Rollbacks for Linked Data Structures
This work's approach leverages the semantic knowledge of the data structure to eliminate the overhead of false conflicts and rollbacks in high-performance lock-free transactional linked data structures without revamping the data structures' original synchronization design.
Lock-Free Transactional Transformation for Linked Data Structures
This work presents a new methodology for transforming high-performance lock-free linked data structures into high- performanceLock-free transactional link data structures without revamping the data structures’ original synchronization design that achieves 4,700 to 915,000 times fewer spurious aborts than the alternatives.
On Open Nesting in Distributed Transactional Memory
This article extends two DTM algorithms, Transactional Forwarding Algorithm and SCORe with support for open nested transactions and implements them into two frameworks for running distributed transactions, such as Hyflow and Infinispan.
LOFT: lock-free transactional data structures
This work presents a design of a transactional framework supporting linearizable transactions of multiple operations on multiple data structures in a lock-free manner, and presents an evaluation of the system showing that it outperform general software transactional memory, and are competitive with lock-based transactional data structures.
On Closed Nesting in Distributed Transactional Memory
This work contributes the first ever implementation of a D-STM system with support for closed nested transactions and partial aborts, and discusses the performance implications of such nesting.
Check-Wait-Pounce: Increasing Transactional Data Structure Throughput by Delaying Transactions
This work introduces an optimization technique called Check-Wait-Pounce that increases performance by avoiding aborts that occur due to failed operations, and improves upon existing methodologies by delaying the execution of transactions until they are expected to succeed.
Type-aware transactions for faster concurrent code
A new software transactional memory (STM) is built that tracks abstract operations on transactional datatypes' implementations, which can use datatype semantics, and new commit protocol features, to reduce bookkeeping, limit false conflicts, and implement efficient concurrency control.
High-performance ACID via modular concurrency control
This paper describes the design, implementation, and evaluation of Callas, a distributed database system that offers to unmodified, transactional ACID applications the opportunity to achieve a level
Software transactional memory for dynamic-sized data structures
A new form of software transactional memory designed to support dynamic-sized data structures, and a novel non-blocking implementation of this STM that uses modular contention managers to ensure progress in practice.