Transactional data structure libraries

@article{Spiegelman2016TransactionalDS,
  title={Transactional data structure libraries},
  author={Alexander Spiegelman and Guy Golan-Gueta and Idit Keidar},
  journal={Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation},
  year={2016}
}
We introduce transactions into libraries of concurrent data structures; such transactions can be used to ensure atomicity of sequences of data structure operations. By focusing on transactional access to a well-defined set of data structure operations, we strike a balance between the ease-of-programming of transactions and the efficiency of custom-tailored data structures. We exemplify this concept by designing and implementing a library supporting transactions on any number of maps, sets… 

Figures and Tables from this paper

Brief Announcement: Transactional Data Structure Libraries
TLDR
This work designs and implements a library supporting transactions on any number of maps, sets, and queues, which offers efficient and scalable transactions, which are an order of magnitude faster than state-of-the-art transactional memory toolkits.
Nesting and composition in transactional data structure libraries
TLDR
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.
Using Nesting to Push the Limits of Transactional Data Structure Libraries
TLDR
This paper builds a Java TDSL with built-in support for nested transactions over a number of data structures, and shows that the library outperforms publicly available STMs twofold without nesting, and by up to 16x when nesting is used.
LOFT: lock-free transactional data structures
TLDR
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.
Lock-Free Transactional Transformation for Linked Data Structures
TLDR
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.
Lock-free transactional vector
TLDR
This work presents the first lock-free transactional vector, which pre-processes transactions to reduce shared memory access and simplify access logic, and generally offers better scalability than STM and STO, and competitive performance with Transactional Boosting, but with additionalLock-free guarantees.
Concurrent Algorithms in Transactional Data Structures
TLDR
Examining both a datatype’s dependency on operation commutativity, and the loss of Commutativity of a particular datatypes interface in a transactional setting, is enough to determine whether a concurrent, non-transactional data structure will achieve high scalability and performance when integrated with STO.
Practical Dynamic Transactional Data Structures
TLDR
This work presents the first wait-free hash map which allows a large number of threads to concurrently insert, get, and remove information and implements a non- blocking transactional hash map using an existing algorithm that transforms non-blocking sets into static transactional versions (LFTT), and modified to support maps.
Optimized Transactional Data Structure Approach to Concurrency Control for In-Memory Databases
TLDR
This work improves the commit rate of in-memory databases by replacing OCC and the underlying indexing of key-value entries in the Silo database with a lock-free transactional dictionary and presents transactional merging, a technique that relaxes the semantic conflict resolution of transactional data structures by merging conflicting operations to reduce aborts.
Efficient means of Achieving Composability using Transactional Memory
TLDR
Object-based STMs or OSTMs which operate on higher level objects rather than read/write operations on memory buffers and hence denoted RWSTMs are considered, which could be an efficient means of achieving composability of higher-level operations in the software applications using the concurrent data structures.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 56 REFERENCES
Type-aware transactions for faster concurrent code
TLDR
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.
Software transactional memory for dynamic-sized data structures
TLDR
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.
Transactional predication: high-performance concurrent sets and maps for STM
TLDR
Transactional predication, a method for building transactional maps and sets on top of an underlying non-composable concurrent map, is introduced, and an experimental evaluation shows that predication has better performance than existing transactional collection algorithms across a range of workloads.
Transactional memory: architectural support for lock-free data structures
TLDR
Simulation results show that transactional memory matches or outperforms the best known locking techniques for simple benchmarks, even in the absence of priority inversion, convoying, and deadlock.
Transactional Memory, 2nd edition
TLDR
This book presents an overview of the state of the art in the design and implementation of transactional memory systems, as of early spring 2010.
Transactional Locking II
TLDR
This paper introduces the transactional locking II (TL2) algorithm, a software transactional memory (STM) algorithm based on a combination of commit-time locking and a novel global version-clock based validation technique, which is ten-fold faster than a single lock.
On the correctness of transactional memory
TLDR
Opacity is defined as a property of concurrent transaction histories and its graph theoretical interpretation is given and it is proved that every single-version TM system that uses invisible reads and does not abort non-conflicting transactions requires, in the worst case, k steps for an operation to terminate.
Read-log-update: a lightweight synchronization mechanism for concurrent programming
This paper introduces read-log-update (RLU), a novel extension of the popular read-copy-update (RCU) synchronization mechanism that supports scalability of concurrent code by allowing unsynchronized
Transactional memory
  • Håkan Grahn
  • Computer Science
    J. Parallel Distributed Comput.
  • 2010
A Contention-Friendly Methodology for Search Structures
TLDR
A new methodology for writing concurrent data structures that limits the high contention induced by today's mutlicore environments to come up with efficient alternatives to most widely used search structures, including skip lists, binary search trees and hash tables is proposed.
...
1
2
3
4
5
...