Verifying concurrent, crash-safe systems with Perennial
Name
chajed-perennial.pdf
Description
Accepted version
Size
643.09 KB
Format
Adobe PDF
Checksum (MD5)
1ce47e56493c9077ad66ce7fa08edad9
Author(s) • • •
Chajed, Tej
Tassarotti, Joseph
Kaashoek, M. Frans
Zeldovich, Nickolai
Date Issued
October 2019
Journal
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
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.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1145/3341301.3359632