Non-volatile memory for fast, reliable file systems

Given the decreasing cost of non-volatile RAM (NVRAM), by the late 1990’s it will be feasible for most workstations to include a megabyte or more of NVRAM, enabling the design of higher-performance, more reliable systems. We present the trace-driven simulation and analysis of two uses of NVRAM to improve I/O performance in distributed file systems: non-volatile file caches on client workstations to reduce write traffic to file servers, and write buffers for write-optimized file systems to reduce server disk accesses. Our results show that a megabyte of NVRAM on diskless clients reduces the amount of file data written to the server by 40 to 50%. Increasing the amount of NVRAM shows rapidly diminishing returns, and the particular NVRAM block replacement policy makes little difference to write traffic. Closely integrating the NVRAM with the volatile cache provides the best total traffic reduction. At today’s prices, volatile memory provides a better performance improvement per dollar than NVRAM for client caching, but as volatile cache sizes increase and NVRAM becomes cheaper, NVRAM will become cost effective. On the server side, providing a one-half megabyte write-buffer per file system reduces disk accesses by about 20% on most of the measured logstructured file systems (LFS), and by 90% on one heavilyused file system that includes transaction-processing workloads.

[1]  Rudolf Bayer,et al.  A database cache for high performance and fast restart in database systems , 1984, TODS.

[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]  Dan Walsh,et al.  Design and implementation of the Sun network filesystem , 1985, USENIX Conference Proceedings.

[5]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.

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

[7]  David R. Cheriton,et al.  Log files: an extended file service exploiting write-once storage , 1987, SOSP '87.

[8]  Alan Jay Smith,et al.  Efficient Analysis of Caching Systems , 1987 .

[9]  Jim Gray,et al.  The 5 minute rule for trading memory for disc accesses and the 10 byte rule for trading memory for CPU time , 1987, SIGMOD '87.

[10]  Andrew R. Cherenson,et al.  The Sprite network operating system , 1988, Computer.

[11]  Jai Menon,et al.  The IBM 3990 disk cache , 1988, Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference.

[12]  Ravi Krishnamurthy,et al.  The Case For Safe RAM , 1989, VLDB.

[13]  Margo I. Seltzer,et al.  Disk Scheduling Revisited , 1990 .

[14]  Sailesh Chutani,et al.  DEcorum File System Architectural Overview , 1990, USENIX Summer.

[15]  Mary Baker,et al.  Measurements of a distributed file system , 1991, SOSP '91.

[16]  Fred Douglis,et al.  Transparent process migration: Design alternatives and the sprite implementation , 1991, Softw. Pract. Exp..

[17]  Mary Baker,et al.  The Recovery Box: Using Fast Recovery to Provide High Availability in the UNIX Environment , 1992, USENIX Summer.

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

[19]  Sanjeev Setia,et al.  Optimal Write Batch Size in Log-Structured File Systems , 1994, Comput. Syst..