Verifying concurrent, crash-safe systems with Perennial
Author(s)
Chajed, Tej; Tassarotti, Joseph; Kaashoek, M. Frans; Zeldovich, Nickolai
DownloadAccepted version (643.0Kb)
Open Access Policy
Open Access Policy
Creative Commons Attribution-Noncommercial-Share Alike
Terms of use
Metadata
Show full item recordAbstract
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.
Date issued
2019-10Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence LaboratoryJournal
Proceedings of the 27th ACM Symposium on Operating Systems Principles
Publisher
Association for Computing Machinery (ACM)
Citation
Chajed, Tej et al. "Verifying concurrent, crash-safe systems with Perennial." Proceedings of the 27th ACM Symposium on Operating Systems Principles, October 2019, Huntsville, Ontario, Canada, Association for Computing Machinery, October 2019. © 2019 owner/author(s)
Version: Author's final manuscript
ISBN
9781450368735