Automated Verification of Concurrent Search Structures

Siddharth Krishna, Nisarg Patel, Dennis Shasha, Thomas Wies

Research output: Chapter in Book/Report/Conference proceedingChapter

Abstract

Search structures support the fundamental data storage primitives on key-value pairs: insert a pair, delete by key, search by key, and update the value associated with a key. Concurrent search structures are parallel algorithms to speed access to search structures on multicore and distributed servers. These sophisticated algorithms perform fine-grained synchronization between threads, making them notoriously difficult to design correctly. Indeed, bugs have been found both in actual implementations and in the designs proposed by experts in peer-reviewed publications. The rapid development and deployment of these concurrent algorithms has resulted in a rift between the algorithms that can be verified by the state-of-The-Art techniques and those being developed and used today. The goal of this book is to show how to bridge this gap in order to bring the certified safety of formal verification to high-performance concurrent search structures. Similar techniques and frameworks can be applied to concurrent graph and network algorithms beyond search structures.

Original languageEnglish (US)
Title of host publicationSynthesis Lectures on Computer Science
Subtitle of host publicationLecture #13
PublisherMorgan and Claypool Publishers
Pages1-188
Number of pages188
Edition1
DOIs
StatePublished - Jun 1 2020

Publication series

NameSynthesis Lectures on Computer Science
Number1
Volume9
ISSN (Print)1932-1228
ISSN (Electronic)1932-1686

Keywords

  • B trees
  • concurrency
  • data structures
  • hash structures
  • log-structured merge trees
  • search structures
  • separation logic
  • verification

ASJC Scopus subject areas

  • Computer Science (miscellaneous)

Fingerprint

Dive into the research topics of 'Automated Verification of Concurrent Search Structures'. Together they form a unique fingerprint.

Cite this