• Corpus ID: 1755

Lock-Free and Practical Deques using Single-Word Compare-And-Swap

@article{Sundell2004LockFreeAP,
  title={Lock-Free and Practical Deques using Single-Word Compare-And-Swap},
  author={H{\aa}kan Sundell and Philippas Tsigas},
  journal={ArXiv},
  year={2004},
  volume={cs.DC/0408016}
}
We present an efficient and practical lock-free implementation of a concurrent deque that is disjoint-parallel accessible and uses atomic primitives which are available in modern computer systems. Previously known lock-free algorithms of deques are either based on non-available atomic synchronization primitives, only implement a subset of the functionality, or are not designed for disjoint accesses. Our algorithm is based on a doubly linked list, and only requires single-word compare-and-swap… 

Figures from this paper

Lock-Free and Practical Doubly Linked List-Based Deques Using Single-Word Compare-and-Swap
We present an efficient and practical lock-free implementation of a concurrent deque that supports parallelism for disjoint accesses and uses atomic primitives which are available in modern computer
Lock-free deques and doubly linked lists
Chapter 7 Lock-Free and Practical Deques and Doubly Linked Lists using Single-Word Compare-And-Swap 1
TLDR
The proposed solution implements a general doubly linked list, the first lock-free implementation that only needs the single-word compare-and-swap atomic primitive, and performs significantly better on systems with high concurrency and non-uniform memory architecture.
Efficient and Reliable Lock-Free Memory Reclamation Based on Reference Counting
TLDR
The method guarantees the safety of local as well as global references, supports arbitrary memory reuse, uses atomic primitives that are available in modern computer systems, and provides an upper bound on the amount of memory waiting to be reclaimed.
Efficient and Reliable Lock-Free Memory Reclamation Based on Reference Counting
TLDR
The method guarantees the safety of local as well as global references, supports arbitrary memory reuse, uses atomic primitives that are available in modern computer systems, and provides an upper bound on the amount of memory waiting to be reclaimed.
On the performance of distributed lock-based synchronization?
TLDR
This work proposes, implements and test several distributed data structures, namely, two different types of counters, a queue, a stack and a linked list, and for each one of the data structures to determine what is the preferred mutual exclusion lock to be used as the underling locking mechanism.
Contention-Sensitive Data Structures and Algorithms
A contention-sensitive data structure is a concurrent data structure in which the overhead introduced by locking is eliminated in the common cases, when there is no contention, or when processes with
Parallel Query Evaluation in Streaming Environments
TLDR
This report continues work started last year in implementing automatic methods of parallel code generated in DBToaster by way of designing, implementing, and evaluating thread-safe MultiMap data structures which are used to represent relations within DB toaster-generated code.
Fair Synchronization
TLDR
This work shows that it is possible to automatically transfer any non-blocking or wait-free data structure into a similar data structure which satisfies a strong fairness requirement, without using locks and with limited waiting, and introduces and solves a new synchronization problem, called fair synchronization.
Contention-sensitive data structures and algorithms
...
1
2
...

References

SHOWING 1-10 OF 22 REFERENCES
CAS-Based Lock-Free Algorithm for Shared Deques
This paper presents the first lock-free algorithm for shared double-ended queues (deques) based on the single-address atomic primitives CAS (Compare-and-Swap) or LL/SC (Load-Linked and
A Practical Multi-word Compare-and-Swap Operation
TLDR
This paper builds CAS2 from CAS1 and, in fact, builds an arbitrary multiword compare-and-swap (CASN), providing compelling evidence that current primitives are not only universal in the theoretical sense introduced by Herlihy, but are also universal in their use as foundations for practical algorithms.
Disjoint-access-parallel implementations of strong shared memory primitives
TLDR
An efficient, non-blocking, disjointaccess-parallel implementation of LL and SCn, using Read and CBS and the asynchronous shar-ed memory model is presented.
Lock-free data structures
TLDR
This thesis presents lock-free data structures, algorithms, and memory management techniques for several common abstract data types that are as efficient, if not more so, than conventional approaches, and thus provide a practical alternative to using spin locks.
Correction of a Memory Management Method for Lock-Free Data Structures
TLDR
There are race conditions that may corrupt data structure that use Valois' memory management method, which solves the ABA problem for acyclic link-based data structures, and allows lock-free algorithms more flexibility as nodes are not required to be freed immediately after a delete operation.
DCAS-based concurrent deques
TLDR
Two new linearizable non-blocking implementations of concurrent deques using the DCAS operation are presented, one of which uses an array representation, and improves on former algorithms by allowing uninterrupted concurrent access to both ends of the deques while correctly handling the difficult boundary cases when the deque is empty or full.
Wait-free synchronization
TLDR
A hierarchy of objects is derived such that no object at one level has a wait-free implementation in terms of objects at lower levels, and it is shown that atomic read/write registers, which have been the focus of much recent attention, are at the bottom of the hierarchy.
Even Better DCAS-Based Concurrent Deques
TLDR
A new non-blocking implementation of concurrent deques using the DCAS operation that relies on automatic storage reclamation to ensure that a storage nodes is not reclaimed and reused until it can be proved that the node is not reachable from any thread of control.
DCAS-based concurrent deques supporting bulk allocation
TLDR
A lock-free implementation of a dynamically sized double-ended queue (deque) that is based on the double compare-and-swap (DCAS) instruction is presented, allowing storage to be allocated and freed in bulk when the size of the deque changes significantly, and to avoid invocation of the storage allocator at all while the size remains relatively stable.
Non-blocking synchronization and system design
TLDR
This thesis demonstrates that non-blocking synchronization is practical as the sole co-ordination mechanism in systems by showing that careful design and implementation of operating system software makes implementing efficient non- blocking synchronization far easier, and by demonstrating that DCASpDouble-Compare-and-Swapp is the necessary and sufficient primitive for implementing NBS.
...
1
2
3
...