SquirrelFS: Using the Rust Compiler to Check File-System Crash Consistency
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.
Authors
- Vijay Chidambaram (ORCID: https://orcid.org/0000-0001-7985-6087)
- Nathan Taylor
- Hayley LeBlanc (ORCID: https://orcid.org/0000-0003-3680-496X)
- James Bornholt (ORCID: https://orcid.org/0000-0002-3258-3226)
Institutions
- Amazon (United States) (US)
- Universitas PGRI Semarang (ID)
- The University of Texas at Austin (US)
Publication Details
- Journal
- ACM Transactions on Storage
- Published
- 2025-09-23
- DOI
- https://doi.org/10.1145/3769109
- Primary Topic
- Distributed systems and fault tolerance
- Type
- article
- Field-Weighted Citation Impact
- 0.00