4
IRUS Total
Downloads
  Altmetric

A simple abstraction for complex concurrent indexes

File Description SizeFormat 
DTR11-10.pdfPublished version1.39 MBAdobe PDFView/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 Creative Commons