Verifying linearizability with Hindsight

Peter W. O'Hearn, Noam Rinetzky, Martin T. Vechev, Eran Yahav, Greta Yorsh

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

60 Scopus citations

Abstract

We present a proof of safety and linearizability of a highly-concurrent optimistic set algorithm. The key step in our proof is the Hindsight Lemma, which allows a thread to infer the existence of a global state in which its operation can be linearized based on limited local atomic observations about the shared state. The Hindsight Lemma allows us to avoid one of the most complex and non-intuitive steps in reasoning about highly concurrent algorithms: considering the linearization point of an operation to be in a different thread than the one executing it. The Hindsight Lemma assumes that the algorithm maintains certain simple invariants which are resilient to interference, and which can themselves be verified using purely thread-local proofs. As a consequence, the lemma allows us to unlock a perhaps-surprising intuition: a high degree of interference makes non-trivial highly-concurrent algorithms in some cases much easier to verify than less concurrent ones.

Original languageEnglish
Title of host publicationPODC'10 - Proceedings of the 2010 ACM Symposium on Principles of Distributed Computing
Pages85-94
Number of pages10
DOIs
StatePublished - 2010
Externally publishedYes
Event29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC 2010 - Zurich, Switzerland
Duration: 25 Jul 201028 Jul 2010

Publication series

NameProceedings of the Annual ACM Symposium on Principles of Distributed Computing

Conference

Conference29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC 2010
Country/TerritorySwitzerland
CityZurich
Period25/07/1028/07/10

Keywords

  • Hindsight
  • Linearizability
  • Optimistic concurrency
  • Wait- freedom

Fingerprint

Dive into the research topics of 'Verifying linearizability with Hindsight'. Together they form a unique fingerprint.

Cite this