Can Applications Recover from fsync Failures?

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

Research output: Contribution to journalArticlepeer-review

Abstract

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
Article number12
Number of pages30
JournalTransactions on Storage (TOS)
Volume17
Issue number2
DOIs
Publication statusPublished - 15 Jun 2021

Keywords / Materials (for Non-textual outputs)

  • file system
  • fsync
  • persistence
  • fsync failures
  • Durability

Fingerprint

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

Cite this