scispace - formally typeset
Proceedings ArticleDOI

LOFT: lock-free transactional data structures

Reads0
Chats0
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.
Abstract
Concurrent data structures are widely used in modern multicore architectures, providing atomicity (linearizability) for each concurrent operation. However, it is often desirable to execute several operations on multiple data structures atomically. We present a design of a transactional framework supporting linearizable transactions of multiple operations on multiple data structures in a lock-free manner. Our design uses a helping mechanism to obtain lock-freedom, and an advanced lock-free contention management mechanism to mitigate the effects of aborting transactions. When cyclic helping conflicts are detected, the contention manager reorders the conflicting transactions execution allowing all transactions to complete with minimal delay. To exemplify this framework we implement a transactional set using a skip-list, a transactional queue, and a transactional register. We present an evaluation of the system showing that we outperform general software transactional memory, and are competitive with lock-based transactional data structures.

read more

Content maybe subject to copyright    Report

Citations
More filters
Proceedings ArticleDOI

NVTraverse: in NVRAM data structures, the destination is more important than the journey

TL;DR: In this paper, the authors present a general transformation that takes a lock-free data structure from a general class called traversal data structure and automatically transforms it into an implementation of the data structure for the NVRAM setting that is provably linearizable and highly efficient.
Posted Content

NVTraverse: In NVRAM Data Structures, the Destination is More Important than the Journey

TL;DR: A general transformation that takes a lock-free data structure from a general class called traversal data structure and automatically transforms it into an implementation of the data structure for the NVRAM setting that is provably durably linearizable and highly efficient is presented.
Proceedings ArticleDOI

Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing

TL;DR: This evaluation demonstrates that Block-STM is adaptive to workloads with different conflict rates and utilizes the inherent parallelism therein.
Journal ArticleDOI

C4: verified transactional objects

TL;DR: In this paper , a formal verification framework called C4 is presented to prove the correctness of transactional set objects. But the proof is modular, reasoning separately about the transactional and non-transactional parts of the implementation.
Posted Content

Adapting Persistent Data Structures for Concurrency and Speculation

TL;DR: This work exploits a correspondence between design goals for efficient concurrent data structures and efficient immutable persistent data structures, to produce novel implementations of mutable concurrent trees with low contention and an efficient snapshot operation to support speculative execution models.
References
More filters
Journal ArticleDOI

Linearizability: a correctness condition for concurrent objects

TL;DR: This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.
Proceedings ArticleDOI

Transactional memory: architectural support for lock-free data structures

TL;DR: 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.
Proceedings ArticleDOI

Software transactional memory

TL;DR: STM is used to provide a general highly concurrent method for translating sequential object implementations to non-blocking ones based on implementing a k-word compare&swap STM-transaction, a novel software method for supporting flexible transactional programming of synchronization operations.
Proceedings ArticleDOI

Software transactional memory for dynamic-sized data structures

TL;DR: 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.
Proceedings ArticleDOI

Simple, fast, and practical non-blocking and blocking concurrent queue algorithms

TL;DR: Experiments on a 12-node SGI Challenge multiprocessor indicate that the new non-blocking queue consistently outperforms the best known alternatives; it is the clear algorithm of choice for machines that provide a universal atomic primitive (e.g., compare_and_swap or load_linked/store_conditional).
Related Papers (5)