Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2013
DOI: 10.1145/2429069.2429109
|View full text |Cite
|
Sign up to set email alerts
|

Quantitative relaxation of concurrent data structures

Abstract: There is a trade-off between performance and correctness in implementing concurrent data structures. Better performance may be achieved at the expense of relaxing correctness, by redefining the semantics of data structures. We address such a redefinition of data structure semantics and present a systematic and formal framework for obtaining new data structures by quantitatively relaxing existing ones. We view a data structure as a sequential specification containing all "legal" sequences over an alphabet of me… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
78
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
5
1
1

Relationship

3
4

Authors

Journals

citations
Cited by 69 publications
(78 citation statements)
references
References 26 publications
0
78
0
Order By: Relevance
“…The key insight here is that a span-pool with only one Treiber stack does not scale anymore but, most interestingly, results in slightly lower memory consumption because threads find empty spans even faster. Moreover, replacing Treiber stacks with lock-based stacks results in loss of performance and limits scalability [15]. In a different part of scalloc we nevertheless use locks to synchronize access to an uncontended double-ended queue.…”
Section: Experience and Relevancementioning
confidence: 99%
See 3 more Smart Citations
“…The key insight here is that a span-pool with only one Treiber stack does not scale anymore but, most interestingly, results in slightly lower memory consumption because threads find empty spans even faster. Moreover, replacing Treiber stacks with lock-based stacks results in loss of performance and limits scalability [15]. In a different part of scalloc we nevertheless use locks to synchronize access to an uncontended double-ended queue.…”
Section: Experience and Relevancementioning
confidence: 99%
“…A recent trend towards semantically relaxed concurrent data structures [1,15] opens doors for new design ideas and even greater performance and scalability so that hierarchies of spans (buffers in general) can be avoided and may be utilized globally across the whole system. The concurrent data structures in scalloc are pools, allowing in principle every data structure with pool semantics to be used.…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…by relaxing the sequential specification of a data structure, but mostly implicitly and qualitatively, such as replacing a queue with a pool. With the work on quantitative relaxation [9], one can now define and implement new data structures which are k-relaxed, for any k ≥ 0, relative to a given data structure. For instance, a 1-relaxed queue behaves like a queue with the exception that a dequeue is allowed to return either the oldest or the second oldest element of the queue.…”
Section: Introductionmentioning
confidence: 99%