Rethink the sync
- 22 September 2008
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 26 (3), 1-26
- https://doi.org/10.1145/1394441.1394442
Abstract
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.Keywords
Funding Information
- Division of Computer and Network Systems (CNS-0346686, CNS-0509093)
This publication has 20 references indexed in Scilit:
- Speculative execution in a distributed file systemACM Transactions on Computer Systems, 2006
- RxPublished by Association for Computing Machinery (ACM) ,2005
- IRON file systemsPublished by Association for Computing Machinery (ACM) ,2005
- A survey of rollback-recovery protocols in message-passing systemsACM Computing Surveys, 2002
- Cooperative shared memoryACM Transactions on Computer Systems, 1993
- Manetho: transparent roll back-recovery with low overhead, limited rollback, and fast output commitIEEE Transactions on Computers, 1992
- Optimistic recovery in distributed systemsACM Transactions on Computer Systems, 1985
- A fast file system for UNIXACM Transactions on Computer Systems, 1984
- Time, clocks, and the ordering of events in a distributed systemCommunications of the ACM, 1978
- The UNIX time-sharing systemCommunications of the ACM, 1974