4
IRUS TotalDownloads
Altmetric
A simple abstraction for complex concurrent indexes
File | Description | Size | Format | |
---|---|---|---|---|
DTR11-10.pdf | Published version | 1.39 MB | Adobe PDF | View/Open |
Title: | A simple abstraction for complex concurrent indexes |
Authors: | Da Rocha Pinto, PM Dinsdale-Young, T Dodds, M Gardner, P Wheelhouse, M |
Item Type: | Report |
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 specification for concurrent indexes. We verify several representative concurrent client applications using our specification, demonstrating that clients can reason abstractly without having to consider specific underlying implementations. Our specification would, however, mean nothing if it were not satisfied by standard implementations of concurrent indexes. We verify that our specification is satisfied by algorithms based on linked lists, hash tables and BLink trees. The complexity of these algorithms, in particular the BLink tree algorithm, can be completely hidden from the client’s view by our abstract specification. |
Issue Date: | 1-Jan-2011 |
URI: | http://hdl.handle.net/10044/1/95171 |
DOI: | https://doi.org/10.25561/95171 |
Publisher: | Department of Computing, Imperial College London |
Start Page: | 1 |
End Page: | 38 |
Journal / Book Title: | Departmental Technical Report: 11/10 |
Copyright Statement: | © 2011 The Author(s). This report is available open access under a CC-BY-NC-ND (https://creativecommons.org/licenses/by-nc-nd/4.0/) |
Publication Status: | Published |
Article Number: | 11/10 |
Appears in Collections: | Computing Computing Technical Reports Faculty of Engineering |
This item is licensed under a Creative Commons License