6/1 paper evals

Yod (h13nguye@ieng9.ucsd.edu)
Thu, 1 Jun 2000 02:12:59 -0700 (PDT)

Henry H. Nguyen
h13nguye@ucsd.edu
Title: The design and implementation of a log-structured file system

This paper introduces the concept of using persistent log-structured file
system for disk storage management. As describes in the paper, a log-structured
file system writes all modifications to disk sequentially in a log-like
structure, thereby speeding up both file writing and crash recovery.

The design goal of the log-structured file system is to provide better perfor-
mance for small-file access, which is claimed to be much better than the FFS.
And the fundatmental idea of a log-structured file system is to improve write
performance by buffering a sequence of file system changes in the file cache
and then writing all the changes to disk sequentially in a single disk write
operation.

Some of the design concepts mentioned in the paper for the Sprite LFS include
an inode map to maintain the current location of each inode for file location
and reading, and inode maps are compact enough to keep in the active portions
cached in main memory to prevent any disk accesses; Sprite LFS uses a combi-
nation of threading and copying to manage free space.

Crash recovery is another major advantage that a log-structured file system
has over the Unix FFS. In a log-structured file system, the locations of the
last disk operations before a crash is easy to determine: they are at the end
of the log. In Sprite LFS, recovery involves the concepts of checkpoints and
roll-forward. Checkpoints define the last consistent sates of the file system.
Roll-forward is used to recover information written since the last checkpoint.

Title: A Fast File System for UNIX

This paper concentrates on the improvements that were made on the Unix file
system. In addition to providing better throughput and performance on the new
file system organization, the new file system also provides functional enhance-
ments such as file locking, symbolic links and quotas.

The old file system describes in the paper consists of files, and that every
file has a descriptor associated with it called an inode. An inode contains
info describing ownership of the file, time stamps marking last modification
and access times for the files, and an array of indices that point to the data
blocks for the file. However, the block size of the old file system is some-
what small (512 or 1042 bytes). The combination of the small block size,
limited read-ahead in the system, and many seeks severely limits file system
throughput. When comparing throughput of the file system with block size of
512 and 1042, the improvement in throughput was noticeable and concluded that
bigger block size provides better throughput.

Based on the idea that bigger block size will provide better throughput, the
new file system increases the block size to at least 4096 bytes. The size of
file system blocks can be any power of two greater than or equal to 4096 bytes.
By increasing the block size, more information can be read per disk transaction.
The new file system uses fragments and bit status to eliminate the undue waste
that is caused by large blocks. The new file system also takes into account the
underlying hardare constraints such as the physical characteristics of the disk.
The layout policies of the new file system factors in the seek time and
rotational time for the disk, along with the processor speed, to increase the
locality of reference to minimize seek latency and to improve the layout of
data to make larger transfers possible.

Some of the functional improvements that are mentioned in the paper on the new
file system include longer file name, the maximum length of a file name in a
directory is 255 characters; several locking schemes for file that allow
programs to apply advisory shared or exclusive locks on files; and a quota
mechanism to restrict the amount of file system resources that users can obtain.