Hayley LeBlanc, Nathan Taylor, James Bornholt, Vijay Chidambaram
{"title":"SquirrelFS: using the Rust compiler to check file-system crash consistency","authors":"Hayley LeBlanc, Nathan Taylor, James Bornholt, Vijay Chidambaram","doi":"arxiv-2406.09649","DOIUrl":null,"url":null,"abstract":"This work introduces a new approach to building crash-safe file systems for\npersistent memory. We exploit the fact that Rust's typestate pattern allows\ncompile-time enforcement of a specific order of operations. We introduce a\nnovel crash-consistency mechanism, Synchronous Soft Updates, that boils down\ncrash safety to enforcing ordering among updates to file-system metadata. We\nemploy this approach to build SquirrelFS, a new file system with\ncrash-consistency guarantees that are checked at compile time. SquirrelFS\navoids the need for separate proofs, instead incorporating correctness\nguarantees into the typestate itself. Compiling SquirrelFS only takes tens of\nseconds; successful compilation indicates crash consistency, while an error\nprovides a starting point for fixing the bug. We evaluate SquirrelFS against\nstate of the art file systems such as NOVA and WineFS, and find that SquirrelFS\nachieves similar or better performance on a wide range of benchmarks and\napplications.","PeriodicalId":501333,"journal":{"name":"arXiv - CS - Operating Systems","volume":"175 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-06-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Operating Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2406.09649","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
This work introduces a new approach to building crash-safe file systems for
persistent memory. We exploit the fact that Rust's typestate pattern allows
compile-time enforcement of a specific order of operations. We introduce a
novel crash-consistency mechanism, Synchronous Soft Updates, that boils down
crash safety to enforcing ordering among updates to file-system metadata. We
employ this approach to build SquirrelFS, a new file system with
crash-consistency guarantees that are checked at compile time. SquirrelFS
avoids the need for separate proofs, instead incorporating correctness
guarantees into the typestate itself. Compiling SquirrelFS only takes tens of
seconds; successful compilation indicates crash consistency, while an error
provides a starting point for fixing the bug. We evaluate SquirrelFS against
state of the art file systems such as NOVA and WineFS, and find that SquirrelFS
achieves similar or better performance on a wide range of benchmarks and
applications.