Optimistic crash consistency
- 3 November 2013
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 228-243
- https://doi.org/10.1145/2517349.2522726
Abstract
We introduce optimistic crash consistency, a new approach to crash consistency in journaling file systems. Using an array of novel techniques, we demonstrate how to build an optimistic commit protocol that correctly recovers from crashes and delivers high performance. We implement this optimistic approach within a Linux ext4 variant which we call OptFS. We introduce two new file-system primitives, osync() and dsync(), that decouple ordering of writes from their durability. We show through experiments that OptFS improves performance for many workloads, sometimes by an order of magnitude; we confirm its correctness through a series of robustness tests, showing it recovers to a consistent state after crashes. Finally, we show that osync() and dsync() are useful in atomic file system and database update scenarios, both improving performance and meeting application-level consistency demands.Keywords
Funding Information
- Sony Electronics Inc.
- VMware
- Fusion-io
- Division of Computer and Network Systems (CNS-1319405, CNS-1218405)
- EMC
- NetApp
- Huawei Technologies
- Microsoft
This publication has 8 references indexed in Scilit:
- Disks from the perspective of a file systemCommunications of the ACM, 2012
- LazyBasePublished by Association for Computing Machinery (ACM) ,2012
- Generalized file system dependenciesPublished by Association for Computing Machinery (ACM) ,2007
- IRON file systemsPublished by Association for Computing Machinery (ACM) ,2005
- Scheduling algorithms for modern disk drivesACM SIGMETRICS Performance Evaluation Review, 1994
- Write-only disk cachesPublished by Association for Computing Machinery (ACM) ,1990
- Apologizing versus asking permission: optimistic concurrency control for abstract data typesACM Transactions on Database Systems, 1990
- On optimistic methods for concurrency controlACM Transactions on Database Systems, 1981