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 (US)
Article number3450338
JournalACM Transactions on Storage
Volume17
Issue number2
DOIs
StatePublished - Jun 2021
Externally publishedYes

Keywords

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

ASJC Scopus subject areas

  • Hardware and Architecture

Fingerprint

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

Cite this