| dc.contributor.author | Chen, Haogang | |
| dc.contributor.author | Chajed, Tej | |
| dc.contributor.author | Konradi, Alex | |
| dc.contributor.author | Wang, Stephanie | |
| dc.contributor.author | İleri, Atalay | |
| dc.contributor.author | Chlipala, Adam | |
| dc.contributor.author | Kaashoek, M. Frans | |
| dc.contributor.author | Zeldovich, Nickolai | |
| dc.date.accessioned | 2021-11-04T19:09:59Z | |
| dc.date.available | 2021-11-04T19:09:59Z | |
| dc.date.issued | 2017-10 | |
| dc.identifier.uri | https://hdl.handle.net/1721.1/137398 | |
| dc.description.abstract | © 2017 Copyright is held by the owner/author(s). DFSCQ is the first file system that (1) provides a precise specification for fsync and fdatasync, which allow applications to achieve high performance and crash safety, and (2) provides a machine-checked proof that its implementation meets this specification. DFSCQ’s specification captures the behavior of sophisticated optimizations, including log-bypass writes, and DFSCQ’s proof rules out some of the common bugs in file-system implementations despite the complex optimizations. The key challenge in building DFSCQ is to write a specification for the file system and its internal implementation without exposing internal file-system details. DFSCQ introduces a metadata-prefix specification that captures the properties of fsync and fdatasync, which roughly follows the behavior of Linux ext4. This specification uses a notion of tree sequences—logical sequences of file-system tree states—for succinct description of the possible states after a crash and to describe how data writes can be reordered with respect to metadata updates. This helps application developers prove the crash safety of their own applications, avoiding application-level bugs such as forgetting to invoke fsync on both the file and the containing directory. An evaluation shows that DFSCQ achieves 103 MB/s on large file writes to an SSD and durably creates small files at a rate of 1,618 files per second. This is slower than Linux ext4 (which achieves 295 MB/s for large file writes and 4,977 files/s for small file creation) but much faster than two recent verified file systems, Yggdrasil and FSCQ. Evaluation results from application-level benchmarks, including TPC-C on SQLite, mirror these microbenchmarks. | en_US |
| dc.language.iso | en | |
| dc.publisher | Association for Computing Machinery (ACM) | en_US |
| dc.relation.isversionof | 10.1145/3132747.3132776 | 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 | Verifying a high-performance crash-safe file system using a tree specification | en_US |
| dc.type | Article | en_US |
| dc.identifier.citation | Chen, Haogang, Chajed, Tej, Konradi, Alex, Wang, Stephanie, İleri, Atalay et al. 2017. "Verifying a high-performance crash-safe file system using a tree specification." | |
| dc.contributor.department | Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory | 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 | 2019-05-13T17:40:20Z | |
| dspace.date.submission | 2019-05-13T17:40:21Z | |
| mit.metadata.status | Authority Work and Publication Information Needed | en_US |