Specifying and Checking File System Crash-Consistency Models
Authors:
Open Access
- 25 March 2016
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 83-98
Abstract
Applications depend on persistent storage to recover state after system crashes. But the POSIX file system interfaces do not define the possible outcomes of a crash. As a result, it is difficult for application writers to correctly understand the ordering of and dependencies between file system operations, which can lead to corrupt application state and, in the worst case, catastrophic data loss. This paper presents crash-consistency models, analogous to memory consistency models, which describe the behavior of a file system across crashes. Crash-consistency models include both litmus tests, which demonstrate allowed and forbidden behaviors, and axiomatic and operational specifications. We present a formal framework for developing crash-consistency models, and a toolkit, called Ferrite, for validating those models against real file system implementations. We develop a crash-consistency model for ext4, and use Ferrite to demonstrate unintuitive crash behaviors of the ext4 implementation. To demonstrate the utility of crash-consistency models to application writers, we use our models to prototype proof-of-concept verification and synthesis tools, as well as new library interfaces for crash-safe applications.Keywords
Funding Information
- National Science Foundation (1064497)
- Defense Advanced Research Projects Agency (FA8750-16-2-0032)
This publication has 46 references indexed in Scilit:
- BTRFSACM Transactions on Storage, 2013
- DFSACM Transactions on Storage, 2010
- Memory modelsCommunications of the ACM, 2010
- Relaxed memory modelsACM SIGPLAN Notices, 2009
- Extending ACID semantics to the file systemACM Transactions on Storage, 2007
- UMM: an operational memory model specification framework with integrated model checking capabilityConcurrency and Computation: Practice and Experience, 2005
- The Java memory modelACM SIGPLAN Notices, 2005
- ARIESACM Transactions on Database Systems, 1992
- Physical integrity in a large segmented databaseACM Transactions on Database Systems, 1977
- The UNIX time-sharing systemCommunications of the ACM, 1974