dc.contributor.author | Chajed, Tej | |
dc.contributor.author | Tassarotti, Joseph | |
dc.contributor.author | Kaashoek, M. Frans | |
dc.contributor.author | Zeldovich, Nickolai | |
dc.date.accessioned | 2021-02-24T20:44:44Z | |
dc.date.available | 2021-02-24T20:44:44Z | |
dc.date.issued | 2019-06 | |
dc.identifier.isbn | 9781450367127 | |
dc.identifier.uri | https://hdl.handle.net/1721.1/129998 | |
dc.description.abstract | Storage systems make persistence guarantees even if the system crashes at any time, which they achieve using recovery procedures that run after a crash. We present Argosy, a framework for machine-checked proofs of storage systems that supports layered recovery implementations with modular proofs. Reasoning about layered recovery procedures is especially challenging because the system can crash in the middle of a more abstract layer's recovery procedure and must start over with the lowest-level recovery procedure. This paper introduces recovery refinement, a set of conditions that ensure proper implementation of an interface with a recovery procedure. Argosy includes a proof that recovery refinements compose, using Kleene algebra for concise definitions and metatheory. We implemented Crash Hoare Logic, the program logic used by FSCQ [8], to prove recovery refinement, and demonstrated the whole system by verifying an example of layered recovery featuring a write-ahead log running on top of a disk replication system. The metatheory of the framework, the soundness of the program logic, and these examples are all verified in the Coq proof assistant. | en_US |
dc.description.sponsorship | NSF (Awards CNS-1563763 and CCF-1836712) | en_US |
dc.language.iso | en | |
dc.publisher | Association for Computing Machinery (ACM) | en_US |
dc.relation.isversionof | http://dx.doi.org/10.1145/3314221.3314585 | en_US |
dc.rights | Creative Commons Attribution 4.0 International license | en_US |
dc.rights.uri | https://creativecommons.org/licenses/by/4.0/ | en_US |
dc.source | ACM | en_US |
dc.title | Argosy: verifying layered storage systems with recovery refinement | en_US |
dc.type | Article | en_US |
dc.identifier.citation | Chajed, Tej et al. "Argosy: verifying layered storage systems with recovery refinement." Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2019, Phoenix, Arizona, Association for Computing Machinery, June 2019. © 2019 owner/author(s) | en_US |
dc.contributor.department | Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory | en_US |
dc.contributor.department | Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science | en_US |
dc.relation.journal | Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation | en_US |
dc.eprint.version | Final published version | en_US |
dc.type.uri | http://purl.org/eprint/type/ConferencePaper | en_US |
eprint.status | http://purl.org/eprint/status/NonPeerReviewed | en_US |
dc.date.updated | 2020-12-22T13:31:15Z | |
dspace.orderedauthors | Chajed, T; Tassarotti, J; Kaashoek, MF; Zeldovich, N | en_US |
dspace.date.submission | 2020-12-22T13:31:21Z | |
mit.license | PUBLISHER_CC | |
mit.metadata.status | Complete | |