Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/237090.237154acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article
Free access

The Rio file cache: surviving operating system crashes

Published: 01 September 1996 Publication History

Abstract

One of the fundamental limits to high-performance, high-reliability file systems is memory's vulnerability to system crashes. Because memory is viewed as unsafe, systems periodically write data back to disk. The extra disk traffic lowers performance, and the delay period before data is safe lowers reliability. The goal of the Rio (RAM I/O) file cache is to make ordinary main memory safe for persistent storage by enabling memory to survive operating system crashes. Reliable memory enables a system to achieve the best of both worlds: reliability equivalent to a write-through file cache, where every write is instantly safe, and performance equivalent to a pure write-back cache, with no reliability-induced writes to disk. To achieve reliability, we protect memory during a crash and restore it during a reboot (a "warm" reboot). Extensive crash tests show that even without protection, warm reboot enables memory to achieve reliability close to that of a write-through file system. Adding protection makes memory even safer than a write-through file system while adding essentially no overhead. By eliminating reliability-induced disk writes, Rio performs 4-22 times as fast as a write-through file system, 2-14 times as fast as a standard Unix file system, and 1-3 times as fast as an optimized system that risks losing 30 seconds of data and metadata.

References

[1]
M. Abbott, D. Har, L. Herger, M. Kauffmann, K. Mak, J. Murdock, C. Schulz, B. Smith, B. Tremaine, D. Yeh, and L. Wong. Durable Memory RS/6000 System Design. In Proceedings of the 1994 International Symposium on Fault-Tolerant Computing, pages 414-423, 1994.]]
[2]
The Power Protection Handbook. Technical report, American Power Conversion, 1996.]]
[3]
Mary G. Baker, John H. Hartman, Michael D. Kupfer, Ken W. Shirriff, and John K. Ousterhout. Measurements of a Distributed File System. In Proceedings of the 13th ACM Symposium on Operating Systems Principles, pages 198-212, October 1991.]]
[4]
Mary Baker, Satoshi Asami, Etienne Deprit, John Ousterhout, and Margo Seltzer. Non- Volatile Memory for Fast Reliable File Systems. In Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASP- LOS-V), pages 10-22, October 1992.]]
[5]
Mary Baker and Mark Sullivan. The Recovery Box: Using Fast Recovery to Provide High Availability in the UNIX Environment. In Proceedings USENIX Summer Conference, June 1992.]]
[6]
Mary Louise Gray Baker. Fast Crash Recovery in Distributed File Systems. PhD thesis, University of California at Berkeley, January 1994.]]
[7]
Michel Banatre, Gilles Muller, Bruno Rochat, and Patrick Sanchez. Design decisions for the FTM: a general purpose fault tolerant machine. In Proceedings of the 1991 International Symposium on Fault-Tolerant Computing, pages 71-78, June 1991.]]
[8]
James H. Barton, Edward W. Czeck, Zary Z. Segall, and Daniel P. S iewiorek. Fault injection experiments using FIAT. IEEE Transactions on Computers, 39(4):575-582, April 1990.]]
[9]
John Chapin, Mendel Rosenblum, Scott Devine, Tirthankar Lahiri, Dan Teodosiu, and Anoop Gupta. Hive' Fault Containment for Shared-Memory Multiprocessors. In Proceedings of the 1995 Symposium on Operating Systems Principles, December 1995.]]
[10]
Peter M. Chen, Wee Teck Ng, Gurushankar Rajamani, and Christopher M. Aycock. The Rio File Cache: Surviving Operating System Crashes. Technical Report CSE-TR- 286-96, University of Michigan, March 1996.]]
[11]
George Copeland, Tom Keller, Ravi Krishnamurthy, and Marc Smith. The Case for Safe RAM. In Proceedings of the Fifteenth International Conference on Very Large Data Bases, pages 327-335, August 1989.]]
[12]
DEC 3000 300/400/500/600/700/800/900 AXP Models System Programmer's Manual. Technical report, Digital Equipment Corporation, July 1994.]]
[13]
D.J. DeWitt, R.H. Katz, F. Olken, L.D. Shapiro, M. R. Stonebraker, and D. Wood. Implementation Techniques for Main Memory Database Systems. In Proceedings of the 1984 A CM SIGMOD International Conference on Management of Data, pages 1-8, June 1984.]]
[14]
Jason Gait. Phoenix: A Safe In-Memory File System. Communications of the A CM, 33(i):81-86, January 1990.]]
[15]
Gregory R. Ganger and Yale N. Patt. Metadata Update Performance in File Systems. 1994 Operating Systems Design and Implementation (OSDI), November 1994.]]
[16]
Jim Gray. A Census of Tandem System Availability between 1985 and 1990. IEEE Transactions on Reliability, 39(4), October 1990.]]
[17]
Robert B. Hagmann. Reimplemenfing the Cedar File System Using Logging and Group Commit. In Proceedings of the 1987 Symposium on Operating Systems Principles, pages 155-162, November 1987.]]
[18]
John H. Hartman and John K. Ousterhout. Letter to the Editor. Operating Systems Review, 27(1):7-9, January 1993.]]
[19]
John. L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach, 2nd Edition. Morgan Kaufmann Publishers, Inc., 1990. page 493.]]
[20]
John H. Howard, Michael L. Kazar, Sherri G. Menees, David A. Nichols, M. Satyanarayanan, Robert N. Sidebotham, and Michael J. West. Scale and Performance in a Distributed File System. A CM Transactions on Computer Systems, 6(1):51-81, February 1988.]]
[21]
Mark Scott Johnson. Some Requirements for Architectural Support of Software Debugging. In Proceedings of the 1982 International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 140- 148, April 1982.]]
[22]
Ghani A. Kanawati, Nasser A. Kanawati, and Jacob A. Abraham. FERRARI: A Flexible Software-Based Fault and Error Injection System. IEEE Transactions on Computers, 44(2):248-260, February 1995.]]
[23]
Gerry Kane and Joe Heinrich. MIPS RISC Architecture. Prentice Hall, 1992.]]
[24]
Wei-Lun Kao, Ravishankar K. Iyer, and Dong Tang. FINE: A Fault Injection and Monitoring Environment for Tracing the UNIX System Behavior under Faults. IEEE Transactions on Software Engineering, 19(11):1105-1118, November 1993.]]
[25]
Peter B. Kessler. Fast breakpoints: Design and implementation, in Proceedings of the 1990 Conference on Programming Language Design and Implementation (PLDI), pages 78-84, June 1990.]]
[26]
Inhwan Lee and RavishankarK. Iyer. Faults, Symptoms, and Software Fault Tolerance in the Tandem GUARDIAN Operating System. In International Symposium on Fault-Tolerant Computing (FTCS), pages 20-29, 1993.]]
[27]
Samuel J. Leffier, Marshall Kirk McKusick, Michael J. Karels, and John S. Quarterman. The Design and Implementation of the 4.3BSD Unix Operating System. Addison-Wesley Publishing Company, 1989.]]
[28]
Barbara Liskov, Sanjay Ghemawat, Robert Gruber, Paul Johnson, Liuba Shrira, and Michael Williams. Replication in the Harp File System. In Proceedings of the 1991 Symposium on Operating System Principles, pages 226-238, October 1991.]]
[29]
Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic. A Pageable Memory Based Filesystem. In Proceedings US- ENIX Summer Conference, June 1990.]]
[30]
J. Moran, Russel Sandberg, D. Coleman, J. Kepecs, and Bob Lyon. Breaking Through the NFS Performance Barrier. In Proceedings of EUUG Spring 1990, April 1990.]]
[31]
Masataka Ohta and Hiroshi Tezuka. A Fast /tmp File System by Delay Mount Option. In Proceedings USENIX Summer Conference, pages 145-150, June 1990.]]
[32]
John K. Ousterhout, Herve Da Costa, et al. A Trace-Driven Analysis of the UNIX 4.2 BSD File System. In Proceedings of the 1985 Symposium on Operating System Principles, pages 15-24, December 1985.]]
[33]
Mendel Rosenblum and John K. Ousterhout. The Design and Implementation of a Log-Structured File System. ACM Transactions on Computer Systems, 10(1):26-52, February 1992.]]
[34]
Abraham Silberschatz and Peter B. Galvin. Operating System Concepts. Addison-Wesley, 1994. page 200.]]
[35]
Richard L. Sites, editor. Alpha Architecture Reference Manual. Digital Press, 1992.]]
[36]
SPEC SDM Release 1.0 Technical Fact Sheet. Technical report, Franson and Haggerty Associates, 1991.]]
[37]
M. Sullivan and M. Stonebraker. Using write protected data structures to improve software fault tolerance in highly available database management systems. In Proceedings of the 1991 International Conference on Very Large Data Bases (VLDB), pages 171-180, September 1991.]]
[38]
Mark Sullivan and R. Chillarege. Software Defects and Their Impact on System Availability-A Study of Field Failures in Operating Systems. In Proceedings of the 1991 International Symposium on Fault-Tolerant Computing, June 1991.]]
[39]
Andrew S. Tanenbaum. Distributed Operating Systems. Prentice-Hall, 1995. page 146.]]
[40]
Robert Wahbe. Efficient Data Breakpoints. In Proceedings of the 1992 International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), October 1992.]]
[41]
Robert Wahbe, Steven Lucco, Thomas E. Anderson, and Susan L. Graham. Efficient Software-Based Fault Isolation. In Proceedings of the 14th ACM Symposium on Operating Systems Principles, pages 203-216, December 1993.]]
[42]
Michael Wu and Willy Zwaenepoel. eNVy: A Non-Volatile, Main Memory Storage System. In Proceedings of the 1994 International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), October 1994.]]

Cited By

View all
  • (2019)Mitigating Synchronous I/O Overhead in File Systems on Open-Channel SSDsACM Transactions on Storage10.1145/331936915:3(1-25)Online publication date: 31-May-2019
  • (2019)Energy efficient IO stack design for wearable deviceProceedings of the 34th ACM/SIGAPP Symposium on Applied Computing10.1145/3297280.3297491(2152-2159)Online publication date: 8-Apr-2019
  • (2018)Persistency for synchronization-free regionsACM SIGPLAN Notices10.1145/3296979.319236753:4(46-61)Online publication date: 11-Jun-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS VII: Proceedings of the seventh international conference on Architectural support for programming languages and operating systems
October 1996
290 pages
ISBN:0897917677
DOI:10.1145/237090
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 1996

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ASPLOS96
Sponsor:

Acceptance Rates

ASPLOS VII Paper Acceptance Rate 25 of 109 submissions, 23%;
Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)257
  • Downloads (Last 6 weeks)79
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Mitigating Synchronous I/O Overhead in File Systems on Open-Channel SSDsACM Transactions on Storage10.1145/331936915:3(1-25)Online publication date: 31-May-2019
  • (2019)Energy efficient IO stack design for wearable deviceProceedings of the 34th ACM/SIGAPP Symposium on Applied Computing10.1145/3297280.3297491(2152-2159)Online publication date: 8-Apr-2019
  • (2018)Persistency for synchronization-free regionsACM SIGPLAN Notices10.1145/3296979.319236753:4(46-61)Online publication date: 11-Jun-2018
  • (2018)Persistency for synchronization-free regionsProceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3192366.3192367(46-61)Online publication date: 11-Jun-2018
  • (2017)Efficient Software Rejuvenation of In-memory Key-Value Storages2017 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)10.1109/ISSREW.2017.54(280-285)Online publication date: Oct-2017
  • (2017)A low-latency storage stack for fast storage devicesCluster Computing10.1007/s10586-017-0776-920:3(2627-2640)Online publication date: 1-Sep-2017
  • (2016)Failure-Atomic Persistent Memory Updates via JUSTDO LoggingACM SIGARCH Computer Architecture News10.1145/2980024.287241044:2(427-442)Online publication date: 25-Mar-2016
  • (2016)High-Performance Transactions for Persistent MemoriesACM SIGARCH Computer Architecture News10.1145/2980024.287238144:2(399-411)Online publication date: 25-Mar-2016
  • (2016)SegoACM SIGARCH Computer Architecture News10.1145/2980024.287237244:2(277-290)Online publication date: 25-Mar-2016
  • (2016)Failure-Atomic Persistent Memory Updates via JUSTDO LoggingACM SIGPLAN Notices10.1145/2954679.287241051:4(427-442)Online publication date: 25-Mar-2016
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media