Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications 2011
DOI: 10.1145/2048066.2048131
|View full text |Cite
|
Sign up to set email alerts
|

A simple abstraction for complex concurrent indexes

Abstract: Indexes are ubiquitous. Examples include associative arrays, dictionaries, maps and hashes used in applications such as databases, file systems and dynamic languages. Abstractly, a sequential index can be viewed as a partial function from keys to values. Values can be queried by their keys, and the index can be mutated by adding or removing mappings. Whilst appealingly simple, this abstract specification is insufficient for reasoning about indexes that are accessed concurrently.We present an abstract specifica… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
20
1

Year Published

2013
2013
2021
2021

Publication Types

Select...
3
3
1

Relationship

1
6

Authors

Journals

citations
Cited by 17 publications
(21 citation statements)
references
References 23 publications
0
20
1
Order By: Relevance
“…The abstractions provided by these logics are orthogonal to the ones developed here. These logics have been used, e.g., to verify specifications of concurrent dictionary implementations based on B-trees and skip lists that enable compositional client verification [da Rocha Pinto et al 2011;Xiong et al 2017]. We believe that the proofs developed in [Xiong et al 2017] can be further simplified by introducing flow interfaces as an intermediate abstraction of the considered data structures.…”
Section: Related Workmentioning
confidence: 99%
“…The abstractions provided by these logics are orthogonal to the ones developed here. These logics have been used, e.g., to verify specifications of concurrent dictionary implementations based on B-trees and skip lists that enable compositional client verification [da Rocha Pinto et al 2011;Xiong et al 2017]. We believe that the proofs developed in [Xiong et al 2017] can be further simplified by introducing flow interfaces as an intermediate abstraction of the considered data structures.…”
Section: Related Workmentioning
confidence: 99%
“…The spec of flip2 is defined with respect to history χ F : (8) It says that the return value res is equal to the sum of binary complementsā +b for the thread's two separate selfcontributions to the history. Due to the effects of the interference, the history entries a and b may be separated in the overall history by the contributions of the environment, as indicated by .…”
Section: Hoare-style Specifications For Exchange and Flip2mentioning
confidence: 99%
“…For example, Figure 1 shows a proof sketch for a toy program that uses both exchange and flip2. As each of these methods requires its own auxiliary history variable (χ E for the exchanger, and χ F for flip2), the combined program uses both, but the proof simply ignores those histories that are not relevant for any specific method (i.e., we can "frame" the specs (7) and (8) wrt. the histories of the objects that they do not depend upon).…”
Section: Using Subjective Specifications In the Client Codementioning
confidence: 99%
See 2 more Smart Citations