Verifying concurrent, crash-safe systems with perennial

Tej Chajed, Joseph Tassarotti, M. F. Kaashoek, Nickolai Zeldovich

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

This paper introduces Perennial, a framework for verifying concurrent, crash-safe systems. Perennial extends the Iris concurrency framework with three techniques to enable crash-safety reasoning: recovery leases, recovery helping, and versioned memory. To ease development and deployment of applications, Perennial provides Goose, a subset of Go and a translator from that subset to a model in Perennial with support for reasoning about Go threads, data structures, and file-system primitives. We implemented and verified a crash-safe, concurrent mail server using Perennial and Goose that achieves speedup on multiple cores. Both Perennial and Iris use the Coq proof assistant, and the mail server and the framework’s proofs are machine checked.

Original languageEnglish (US)
Title of host publicationSOSP 2019 - Proceedings of the 27th ACM Symposium on Operating Systems Principles
PublisherAssociation for Computing Machinery, Inc
Pages243-258
Number of pages16
ISBN (Electronic)9781450368735
DOIs
StatePublished - Oct 27 2019
Event27th ACM Symposium on Operating Systems Principles, SOSP 2019 - Huntsville, Canada
Duration: Oct 27 2019Oct 30 2019

Publication series

NameSOSP 2019 - Proceedings of the 27th ACM Symposium on Operating Systems Principles

Conference

Conference27th ACM Symposium on Operating Systems Principles, SOSP 2019
Country/TerritoryCanada
CityHuntsville
Period10/27/1910/30/19

Keywords

  • Concurrency
  • Crash safety
  • Separation logic

ASJC Scopus subject areas

  • Software
  • Computational Theory and Mathematics
  • Computer Science Applications

Fingerprint

Dive into the research topics of 'Verifying concurrent, crash-safe systems with perennial'. Together they form a unique fingerprint.

Cite this