Concurrent data-structures, such as stacks, queues, and deques, often implicitly enforce a total order over elements in their underlying memory layout. However, much of this order is unnecessary: linearizability only requires that elements are ordered if the insert methods ran in sequence. We propose a new approach which uses timestamping to avoid unnecessary ordering. Pairs of elements can be left unordered if their associated insert operations ran concurrently, and order imposed as necessary at the eventual removal. We realise our approach in a new non-blocking datastructure, the TS (timestamped) stack. Using the same approach, we can define corresponding queue and deque datastructures. In experiments on x86, the TS stack outperforms and ...
Linearizability is a standard correctness criterion for concurrent algorithms, typically proved by e...
Proving the linearizability of highly concurrent data structures, such as those using optimistic con...
Linearizability of concurrent data structures is usually proved by monolithic simulation arguments r...
Concurrent data-structures, such as stacks, queues, and deques, often implicitly enforce a total ord...
Concurrent data-structures, such as stacks, queues, and deques, often implicitly enforce a total ord...
Concurrent data-structures, such as stacks, queues, and de-ques, often implicitly enforce a total or...
Abstract. Concurrent data-structures, such as stacks, queues and de-ques, often implicitly enforce a...
Order in concurrent data-structures. Efficient and scalable concurrent data-structures are key to hi...
Linearizability requires that the outcome of calls by competing threads to a concurrent data structu...
Linearizability requires that the outcome of calls by competing threads to a concurrent data structu...
Efficient implementations of data structures such as queues, stacks or hash-tables allow for concurr...
The semantics of concurrent data structures is usually given by a sequential specification and a con...
Linearizability of concurrent data structures is usually proved by monolithic simulation arguments r...
Relaxation of semantics is a technique for improving the amortized distributed time complexity of da...
The semantics of concurrent data structures is usually given by a sequential specification and a con...
Linearizability is a standard correctness criterion for concurrent algorithms, typically proved by e...
Proving the linearizability of highly concurrent data structures, such as those using optimistic con...
Linearizability of concurrent data structures is usually proved by monolithic simulation arguments r...
Concurrent data-structures, such as stacks, queues, and deques, often implicitly enforce a total ord...
Concurrent data-structures, such as stacks, queues, and deques, often implicitly enforce a total ord...
Concurrent data-structures, such as stacks, queues, and de-ques, often implicitly enforce a total or...
Abstract. Concurrent data-structures, such as stacks, queues and de-ques, often implicitly enforce a...
Order in concurrent data-structures. Efficient and scalable concurrent data-structures are key to hi...
Linearizability requires that the outcome of calls by competing threads to a concurrent data structu...
Linearizability requires that the outcome of calls by competing threads to a concurrent data structu...
Efficient implementations of data structures such as queues, stacks or hash-tables allow for concurr...
The semantics of concurrent data structures is usually given by a sequential specification and a con...
Linearizability of concurrent data structures is usually proved by monolithic simulation arguments r...
Relaxation of semantics is a technique for improving the amortized distributed time complexity of da...
The semantics of concurrent data structures is usually given by a sequential specification and a con...
Linearizability is a standard correctness criterion for concurrent algorithms, typically proved by e...
Proving the linearizability of highly concurrent data structures, such as those using optimistic con...
Linearizability of concurrent data structures is usually proved by monolithic simulation arguments r...