Rethink the sync

We introduce external synchrony, a new model for local file I/O that provides the reliability and simplicity of synchronous I/O, yet also closely approximates the performance of asynchronous I/O. An external observer cannot distinguish the output of a computer with an externally synchronous file system from the output of a computer with a synchronous file system. No application modification is required to use an externally synchronous file system: in fact, application developers can program to the simpler synchronous I/O abstraction and still receive excellent performance. We have implemented an externally synchronous file system for Linux, called xsyncfs. Xsyncfs provides the same durability and ordering guarantees as those provided by a synchronously mounted ext3 file system. Yet, even for I/O-intensive benchmarks, xsyncfs performance is within 7% of ext3 mounted asynchronously. Compared to ext3 mounted synchronously, xsyncfs is up to two orders of magnitude faster.

[1]  M ChenPeter,et al.  Rethink the sync , 2008 .

[2]  R. S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[3]  Robert S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[4]  Ozalp Babaoglu,et al.  ACM Transactions on Computer Systems , 2007 .

[5]  Jason Flinn,et al.  Speculative execution in a distributed file system , 2005, SOSP '05.

[6]  Alfred Z. Spector,et al.  Distributed transactions for reliable systems , 1985, SOSP 1985.

[7]  Frank B. Schmuck,et al.  Experience with transactions in QuickSilver , 1991, SOSP '91.

[8]  Robert E. Strom,et al.  Optimistic recovery in distributed systems , 1985, TOCS.

[9]  Alfred Z. Spector,et al.  Distributed transactions for reliable systems , 1985, SOSP '85.

[10]  Kourosh Gharachorloo,et al.  Shasta: a low overhead, software-only approach for supporting fine-grain shared memory , 1996, ASPLOS VII.

[11]  Krisztián Flautner,et al.  Vertigo: Automatic Performance-Setting for Linux , 2002, OSDI.

[12]  Abraham Silberschatz,et al.  Operating System Concepts, 5th Edition , 1994 .

[13]  Peter M. Chen,et al.  The Rio file cache: surviving operating system crashes , 1996, ASPLOS VII.

[14]  James Lau,et al.  File System Design for an NFS File Server Appliance , 1994, USENIX Winter.

[15]  Robert B. Hagmann,et al.  Reimplementing the Cedar file system using logging and group commit , 1987, SOSP '87.

[16]  Rodrigo Rodrigues,et al.  Transactional file systems can be fast , 2004, EW 11.

[17]  Yuanyuan Zhou,et al.  Rx: treating bugs as allergies---a safe method to survive software failures , 2005, SOSP '05.

[18]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[19]  Peter M. Chen,et al.  Exploring failure transparency and the limits of generic recovery , 2000, OSDI.

[20]  Willy Zwaenepoel,et al.  Manetho: Transparent Rollback-Recovery with Low Overhead, Limited Rollback, and Fast Output Commit , 1992, IEEE Trans. Computers.

[21]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[22]  Margo I. Seltzer,et al.  Journaling Versus Soft Updates: Asynchronous Meta-data Protection in File Systems , 2000, USENIX Annual Technical Conference, General Track.

[23]  Jeffrey Katcher,et al.  PostMark: A New File System Benchmark , 1997 .

[24]  James R. Larus,et al.  Cooperative shared memory: software and hardware for scalable multiprocessors , 1993, TOCS.

[25]  A. Retrospective,et al.  The UNIX Time-sharing System , 1977 .

[26]  Peter M. Chen,et al.  Persistent messages in local transactions , 1998, PODC '98.

[27]  L. Alvisi,et al.  A Survey of Rollback-Recovery Protocols , 2002 .

[28]  Ken Thompson,et al.  The UNIX time-sharing system , 1974, CACM.

[29]  Geoffrey H. Kuenning,et al.  Conquest: Better Performance Through a Disk/Persistent-RAM Hybrid File System , 2002, USENIX Annual Technical Conference, General Track.

[30]  William H. Paxton A client-based transaction system to maintain data integrity , 1979, SOSP '79.

[31]  Michael Wu,et al.  eNVy: a non-volatile, main memory storage system , 1994, ASPLOS VI.

[32]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[33]  Andrea C. Arpaci-Dusseau,et al.  IRON file systems , 2005, SOSP '05.

[34]  Gerald J. Popek,et al.  Transactions and Synchronization in a Distributed Operating System , 1985, SOSP.

[35]  Trevor Mudge,et al.  Vertigo: automatic performance-setting for Linux , 2002, OPSR.