Show simple item record

dc.contributor.authorChajed, Tej
dc.contributor.authorTassarotti, Joseph
dc.contributor.authorKaashoek, M. Frans
dc.contributor.authorZeldovich, Nickolai
dc.date.accessioned2021-02-24T20:44:44Z
dc.date.available2021-02-24T20:44:44Z
dc.date.issued2019-06
dc.identifier.isbn9781450367127
dc.identifier.urihttps://hdl.handle.net/1721.1/129998
dc.description.abstractStorage 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.sponsorshipNSF (Awards CNS-1563763 and CCF-1836712)en_US
dc.language.isoen
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/3314221.3314585en_US
dc.rightsCreative Commons Attribution 4.0 International licenseen_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.sourceACMen_US
dc.titleArgosy: verifying layered storage systems with recovery refinementen_US
dc.typeArticleen_US
dc.identifier.citationChajed, 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.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.relation.journalProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementationen_US
dc.eprint.versionFinal published versionen_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dc.date.updated2020-12-22T13:31:15Z
dspace.orderedauthorsChajed, T; Tassarotti, J; Kaashoek, MF; Zeldovich, Nen_US
dspace.date.submission2020-12-22T13:31:21Z
mit.licensePUBLISHER_CC
mit.metadata.statusComplete


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record