2015
DOI: 10.1145/2775051.2676963
|View full text |Cite
|
Sign up to set email alerts
|

A Scalable, Correct Time-Stamped Stack

Abstract: 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 (represented by unordered timestamps) if their associated insert operations ran concurrently, and order… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
33
0
1

Year Published

2015
2015
2023
2023

Publication Types

Select...
5
2

Relationship

3
4

Authors

Journals

citations
Cited by 21 publications
(34 citation statements)
references
References 20 publications
0
33
0
1
Order By: Relevance
“…This is the expensive case, only performed on spans with large real-span size determined by a threshold, 5 // Utility f u n c t i o n s to map spans and real -span 6 // sizes to distinct indexes . 7 Int r e a l _ s p a n _ i d x( Span span ) ; 8 Int r e a l _ s p a n _ i d x( Int r e a l _ s p a n _ s i z e) ; 9 10 // Returns the real span size of a given span . 11 Int r e a l _ s p a n _ s i z e( Span span ) ; r e t u r n arena .…”
Section: Backend: Span-poolmentioning
confidence: 99%
See 2 more Smart Citations
“…This is the expensive case, only performed on spans with large real-span size determined by a threshold, 5 // Utility f u n c t i o n s to map spans and real -span 6 // sizes to distinct indexes . 7 Int r e a l _ s p a n _ i d x( Span span ) ; 8 Int r e a l _ s p a n _ i d x( Int r e a l _ s p a n _ s i z e) ; 9 10 // Returns the real span size of a given span . 11 Int r e a l _ s p a n _ s i z e( Span span ) ; r e t u r n arena .…”
Section: Backend: Span-poolmentioning
confidence: 99%
“…We are aware of lock-free implementations of deques [7] that can be enhanced to be usable in scalloc. However, the process of cleaning up the set at thread termination (see below) requires wait-freedom as other threads may still be accessing the data structure.…”
Section: Implementation Detailsmentioning
confidence: 99%
See 1 more Smart Citation
“…Given (ii), a linearization must satisfy the sequential specification of a queue, so the dequeue must return the oldest enqueued value. Hence, the execution in Figure 1 has three possible linearizations: [Enq(1); Enq(2); Enq(3); Deq():1], [Enq(1); Enq(3); Enq(2); Deq():1] and [Enq (2); Enq(1); Enq(3); Deq():2]. This means that the dequeue is allowed to return 1 or 2, but not 3.…”
Section: Introductionmentioning
confidence: 99%
“…This must occur somewhere between the start and end of the operation, to ensure that the linearization preserves the real-time order. For example, when applying the linearization point method to the execution in Figure 1, by point (A) we must have decided if Enq(1) occurs before or after Enq (2) in the linearization. Thus, by this point, we know which of the three possible linearizations matches the execution.…”
Section: Introductionmentioning
confidence: 99%