Results 1 - 10
of
58
High Performance Dynamic Lock-Free Hash Tables and List-based Sets
, 2002
"... Lock-free (non-blocking) shared data structures promise more robust performance and reliability than conventional lock-based implementations. However, all prior lock-free algorithms for sets and hash tables suffer from serious drawbacks that prevent or limit their use in practice. These drawbacks in ..."
Abstract
-
Cited by 103 (3 self)
- Add to MetaCart
Lock-free (non-blocking) shared data structures promise more robust performance and reliability than conventional lock-based implementations. However, all prior lock-free algorithms for sets and hash tables suffer from serious drawbacks that prevent or limit their use in practice. These drawbacks include size inflexibility, dependence on atomic primitives not supported on any current processor architecture, and dependence on highly-inefficient or blocking memory management techniques. Building on the results of prior researchers, this paper presents the first CAS-based lock-free list-based set algorithm that is compatible with all lock-free memory management methods. We use it as a building block of an algorithm for lock-free hash tables. In addition to being lock-free, the new algorithm is dynamic, linearizable, and space-efficient. Our experimental results show that the new algorithm outperforms the best known lock-free as well as lock-based hash table implementations by significant margins, and indicate that it is the algorithm of choice for implementing shared hash tables.
Practical implementations of nonblocking synchronization primitives
- In Proceedings of the 16th Annual ACM Symposium on Principles of Distributed Computing
, 1997
"... 1 Introduction Non-blocking synchronization has been of increasing interest recently, largely due to its ability to avoid the ill effects of locking such as convoying, deadlock, priority inversion, contention, and susceptibility to process delays and failures (see, for example, ..."
Abstract
-
Cited by 75 (14 self)
- Add to MetaCart
(Show Context)
1 Introduction Non-blocking synchronization has been of increasing interest recently, largely due to its ability to avoid the ill effects of locking such as convoying, deadlock, priority inversion, contention, and susceptibility to process delays and failures (see, for example,
Safe Memory Reclamation for Dynamic Lock-Free Objects Using Atomic Reads and Writes
, 2002
"... A major obstacle to the wide use of lock-free data structures, despite their many performance and reliability advantages, is the absence of a practical lock-free method for reclaiming the memory of dynamic nodes removed from dynamic lockfree objects for arbitrary reuse. The only prior lock-free memo ..."
Abstract
-
Cited by 69 (3 self)
- Add to MetaCart
A major obstacle to the wide use of lock-free data structures, despite their many performance and reliability advantages, is the absence of a practical lock-free method for reclaiming the memory of dynamic nodes removed from dynamic lockfree objects for arbitrary reuse. The only prior lock-free memory reclamation method depends on the DCAS atomic primitive, which is not supported on any current processor architecture. Other memory management methods are blocking, require special operating system support, or do not allow arbitrary memory reuse. This paper presents the first lock-free memory management method for dynamic lock-free objects that allows arbitrary memory reuse, and does not require special operating system or hardware support. It guarantees an upper bound on the number of removed nodes not yet freed at any time, regardless of thread failures and delays. Furthermore, it is wait-free, it is only logarithmically contention-sensitive, and it uses only atomic reads and writes for its operations. In addition, it can be used to prevent the ABA problem for pointers to dynamic nodes in most algorithms, without requiring extra space per pointer or per node.
Real-Time Computing with Lock-Free Shared Objects
- ACM Transactions on Computer Systems
, 1995
"... This paper considers the use of lock-free shared objects within hard real-time systems. As the name suggests, lock-free shared objects are distinguished by the fact that they are not locked. As such, they do not give rise to priority inversions, a key advantage over conventional, lock-based object-s ..."
Abstract
-
Cited by 65 (8 self)
- Add to MetaCart
(Show Context)
This paper considers the use of lock-free shared objects within hard real-time systems. As the name suggests, lock-free shared objects are distinguished by the fact that they are not locked. As such, they do not give rise to priority inversions, a key advantage over conventional, lock-based object-sharing approaches. Despite this advantage, it is not immediately apparent that lock-free shared objects can be employed if tasks must adhere to strict timing constraints. In particular, lock-free object implementations permit concurrent operations to interfere with each other, and repeated interferences can cause a given operation to take an arbitrarily long time to complete. The main contribution of this paper is to show that such interferences can be bounded by judicious scheduling. This work pertains to periodic, hard real-time tasks that sharelock-free objects on a uniprocessor. In the first part of the paper, scheduling conditions are derived for such tasks, for both static and dynamic pri...
Transparent Support for Wait-Free Transactions
- In Proceedings of the 11th International Workshop on Distributed Algorithms
, 1997
"... . This paper concerns software support for non-blocking transactions in shared-memory multiprocessors. We present mechanisms that convert sequential transactions into lock-free or wait-free ones. In contrast to some previous mechanisms, ours support transactions for which the set of memory locations ..."
Abstract
-
Cited by 57 (7 self)
- Add to MetaCart
(Show Context)
. This paper concerns software support for non-blocking transactions in shared-memory multiprocessors. We present mechanisms that convert sequential transactions into lock-free or wait-free ones. In contrast to some previous mechanisms, ours support transactions for which the set of memory locations accessed cannot be determined in advance. Our implementations automatically detect and resolve conflicts between concurrent transactions, and allow transactions that do not conflict to execute in parallel. The key to the efficiency of our wait-free implementation lies in using a lock-free (but not wait-free) multi-word compareand -swap (MWCAS) operation. By introducing communication between a high-level helping mechanism and the lock-free MWCAS, we show that an expensive wait-free MWCAS is not necessary to ensure wait-freedom. 1 Introduction The use of locking to coordinate accesses to shared data in multiprocessor applications has a number of associated pitfalls including a lack of concur...
Design tradeoffs in modern software transactional memory systems
- IN PROCEEDINGS OF THE 7TH WORKSHOP ON LANGUAGES, COMPILERS, AND RUN-TIME SUPPORT FOR SCALABLE SYSTEMS
, 2004
"... Software Transactional Memory (STM) is a generic nonblocking synchronization construct that enables automatic conversion of correct sequential objects into correct concurrent objects. Because it is nonblocking, STM avoids traditional performance and correctness problems due to thread failure, preemp ..."
Abstract
-
Cited by 41 (6 self)
- Add to MetaCart
(Show Context)
Software Transactional Memory (STM) is a generic nonblocking synchronization construct that enables automatic conversion of correct sequential objects into correct concurrent objects. Because it is nonblocking, STM avoids traditional performance and correctness problems due to thread failure, preemption, page faults, and priority inversion. In this paper we compare and analyze two recent objectbased STM systems, the DSTM of Herlihy et al. and the FSTM of Fraser, both of which support dynamic transactions, in which the set of objects to be modified is not known in advance. We highlight aspects of these systems that lead to performance tradeoffs for various concurrent data structures. More specifically, we consider object ownership acquisition semantics, concurrent object referencing style, the overhead of ordering and bookkeeping, contention management versus helping semantics, and transaction validation. We demonstrate for each system simple benchmarks on which it outperforms the other by a significant margin. This in turn provides us with a preliminary characterization of the applications for which each system is best suited.
Asynchronous Group Mutual Exclusion
- Distributed Computing
, 1998
"... Mutual exclusion and concurrency are two fundamental and essentially opposite features in distributed systems. However, in some applications such as Computer Supported Cooperative Work (CSCW) we have found it necessary to impose mutual exclusion on dierent groups of processes in accessing a reso ..."
Abstract
-
Cited by 37 (1 self)
- Add to MetaCart
(Show Context)
Mutual exclusion and concurrency are two fundamental and essentially opposite features in distributed systems. However, in some applications such as Computer Supported Cooperative Work (CSCW) we have found it necessary to impose mutual exclusion on dierent groups of processes in accessing a resource, while allowing processes of the same group to share the resource. To our knowledge, no such design issue has been previously raised in the literature. In this paper we address this issue by presenting a new problem, called Congenial Talking Philosophers, to model group mutual exclusion. We also propose several criteria to evaluate solutions of the problem and to measure their performance. Finally, we provide an ecient and highly concurrent distributed algorithm for the problem in a sharedmemory model where processes communicate by reading from and writing to shared variables. The distributed algorithm meets the proposed criteria, and has performance similar to some naive but...
A Simple Local-Spin Group Mutual Exclusion Algorithm
- IN PROCEEDINGS OF THE 18TH ANNUAL ACM SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING
, 1999
"... This paper presents a new solution to the group mutual exclusion problem, recently posed by Joung. In this problem, processes repeatedly request access to various "sessions". It is required that distinct processes are not in different sessions concurrently, that multiple processes may be ..."
Abstract
-
Cited by 33 (2 self)
- Add to MetaCart
This paper presents a new solution to the group mutual exclusion problem, recently posed by Joung. In this problem, processes repeatedly request access to various "sessions". It is required that distinct processes are not in different sessions concurrently, that multiple processes may be in the same session concurrently, and that each process that tries to enter a session is eventually able to do so. This problem is a generalization of the mutual exclusion and readers-writers problems. Our algorithm and its correctness proof are substantially simpler than Joung's. This simplicity is achieved by building upon known solutions to the more specific mutual exclusion problem. Our algorithm also has various advantages over Joung's, depending on the choice of mutual exclusion algorithm used. These advantages include admitting a process to its session in constant time in the absence of contention, spinning locally in Cache Coherent (CC) and Non-Uniform Memory Access (NUMA) systems, an...
Real-Time Synchronization on Multiprocessors: To Block or Not to Block, to Suspend or Spin?
, 2008
"... In the domain of multiprocessor real-time systems, there hasbeen a wealth of recent work on scheduling, but relatively little work on the equally-important topic of synchronization.When synchronizing accesses to shared resources, four basic options exist: lock-free execution, wait-free execution, ..."
Abstract
-
Cited by 30 (12 self)
- Add to MetaCart
In the domain of multiprocessor real-time systems, there hasbeen a wealth of recent work on scheduling, but relatively little work on the equally-important topic of synchronization.When synchronizing accesses to shared resources, four basic options exist: lock-free execution, wait-free execution, spin-based locking, and suspension-based locking. To our knowledge, no empirical multiprocessor-based evaluation of thesebasic techniques that focuses on real-time systems has ever been conducted before. In this paper, we present such anevaluation and report on our efforts to incorporate synchronization support in the testbed used in this effort.
A Framework for Implementing Objects and Scheduling Tasks in Lock-Free Real-Time Systems
- In Proceedings of the 17th IEEE Real-Time Systems Symposium
, 1996
"... We present an integrated framework for developing realtime systems in which lock-free algorithms are employed to implement shared objects. There are two key objectives of our work. The first is to enable functionality for object sharing in lock-free real-time systems that is comparable to that in lo ..."
Abstract
-
Cited by 28 (14 self)
- Add to MetaCart
(Show Context)
We present an integrated framework for developing realtime systems in which lock-free algorithms are employed to implement shared objects. There are two key objectives of our work. The first is to enable functionality for object sharing in lock-free real-time systems that is comparable to that in lock-based systems. Our main contribution toward this objective is an efficient approach for implementing multiobject lock-free operations and transactions. A second key objective of our work is to improve upon previously proposed scheduling conditions for tasks that share lock-free objects. When developing such conditions, the key issue is to bound the cost of operation "interferences". We present a general approach for doing this, based on linear programming. 1. Introduction Mostworkon implementing shared objects in preemptive real-time uniprocessor systems has focused on using critical sections to ensure object consistency. The main problem that arises when using critical sections is that ...