Verifying the DaisyNFS concurrent and crash-safe file system with sequential reasoning
Tej Chajed, Joseph Tassarotti, Mark Theng, M. Frans Kaashoek, Nickolai Zeldovich
Abstract
This paper develops a new approach to verifying a performant file system that isolates crash safety and concurrency reasoning to a transaction system that gives atomic access to the disk, so that the rest of the file system can be verified with sequential reasoning.
We demonstrate this approach in DaisyNFS, a Network File System (NFS) server written in Go that runs on top of a disk. DaisyNFS uses GoTxn, a new verified, concurrent transaction system that extends GoJournal [9] with two-phase locking and an allocator. The transaction system's specification formalizes under what conditions transactions can be verified with only sequential reasoning, and comes with a mechanized proof in Coq [37] that connects the specification to the implementation.
As evidence that proofs enjoy sequential reasoning, DaisyNFS uses Dafny [26], a sequential verification language, to implement and verify all the NFS operations on top of GoTxn. The sequential proofs helped achieve a number of good properties in DaisyNFS: easy incremental development (for example, adding support for large files), a relatively short proof (only 2× as many lines of proof as code), and a performant implementation (at least 60% the throughput of the Linux NFS server exporting ext4 across a variety of benchmarks).
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 1b95e895-eee6-43ea-b673-c46444129205Cited by top-tier papers15
- Anvil: Verifying Liveness of Cluster Management ControllersXudong Sun, Wenjie Ma, Jiawei Tyler Gu, Zicheng Ma et al.OSDI 2024 · 50 citations
- Automated Verification of Idempotence for Stateful Serverless ApplicationsHaoran Ding, Zhaoguo Wang, Zhuohao Shen, Rong Chen et al.OSDI 2023 · 16 citations
- Verifying vMVCC, a high-performance transaction library using multi-version concurrency controlYun-Sheng Chang, Ralf Jung, Upamanyu Sharma, Joseph Tassarotti et al.OSDI 2023 · 16 citations
- Compiling Distributed System Models with PGoA. Finn Hackett, Shayan Hosseini, Renato Costa, Matthew Do et al.ASPLOS 2023 · 13 citations
- OSVBench: Benchmarking LLMs on Specification Generation Tasks for Operating System VerificationShangyu Li, Juyong Jiang, Tiancheng Zhao, Jiasi ShenAAAI 2026 · 10 citations
Builds on2
- Storage Systems are Distributed Systems (So Verify Them That Way!)Travis Hance, Andrea Lattuada, Chris Hawblitzel, Jon Howell et al.OSDI 2020 · 52 citations
- GoJournal: a verified, concurrent, crash-safe journaling systemTej Chajed, Joseph Tassarotti, Mark Theng, Ralf Jung et al.OSDI 2021 · 31 citations
Related papers
- Using Dynamically Layered Definite Releases for Verifying the RefFS File SystemMo Zou, Dong Du, Mingkai Dong, Haibo ChenOSDI 2024 · 4 citations
- Verifying a high-performance distributed transaction system using permissioned state machinesYun-Sheng Chang, Joseph Tassarotti, Frans Kaashoek, Nickolai ZeldovichSOSP 2026
- Determinizing Crash Behavior with a Verified Snapshot-Consistent Flash Translation LayerYun-Sheng Chang, Yao Hsiao, Tzu-Chi Lin, Che-Wei Tsao et al.OSDI 2020 · 7 citations
- Compositionality and Observational Refinement for Linearizability with CrashesArthur Oliveira Vale, Zhongye Wang, Yixuan Chen, Peixin You et al.OOPSLA 2024 · 1 citation
- CrossFS: A Cross-layered Direct-Access File SystemYujie Ren, Changwoo Min, Sudarsun KannanOSDI 2020 · 35 citations
