Can Applications Recover from fsync Failures?

Anthony Rebello, Yuvraj Patel, Ramnatthan Alagappan, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

We analyze how file systems and modern data-intensive applications react to fsync failures. First, we characterize how three Linux file systems (ext4, XFS, Btrfs) behave in the presence of failures. We find commonalities across file systems (pages are always marked clean, certain block writes always lead to unavailability), as well as differences (page content and failure reporting is varied). Next, we study how five widely used applications (PostgreSQL, LMDB, LevelDB, SQLite, Redis) handle fsync failures. Our findings show that although applications use many failure-handling strategies, none are sufficient: fsync failures can cause catastrophic outcomes such as data loss and corruption. Our findings have strong implications for the design of file systems and applications that intend to provide strong durability guarantees.
Original languageEnglish
Title of host publication2020 USENIX Annual Technical Conference (USENIX ATC 20)
PublisherUSENIX Association
Number of pages15
ISBN (Print)978-1-939133-14-4
Publication statusPublished - 17 Jul 2020
Event2020 USENIX Annual Technical Conference - Online
Duration: 15 Jul 202017 Jul 2020


Conference2020 USENIX Annual Technical Conference
Abbreviated titleATC 2020
Internet address


Dive into the research topics of 'Can Applications Recover from fsync Failures?'. Together they form a unique fingerprint.

Cite this