CSE 221: Paper Evaluations

Renata C TEIXEIRA (teixeira@cs.ucsd.edu)
Wed, 31 May 2000 21:34:04 -0700 (PDT)

Title: "A Fast File System for Unix"

This paper presents a set of modifications to the original
Unix file system in order to achieve a better performance.
The original Unix file system was not efficient because
inodes were separate from data, the system only transferred
one block per disk transaction and blocks were small, and
the free list was usually too fragmented, causing files to
have their blocks allocated randomly over the disk.

The main idea to overcome those problems is to increase
locality and improve layout of data. The paper proposes
using larger file system blocks with fragments, allowing
good performance for both small and large files. In addition,
it organizes the file system in areas called cylinder groups,
which are associated with some bookkeeping information
and have a static number of inodes allocated.

The layout policy tries to place all the inodes of files
in a directory in the same cylinder group, new directories
in a cylinder group that has large number of free inodes
and a small number of directories in it, and data blocks
for a file in the same cylinder group up to a limit.

I think that the paper introduces various relevant concepts,
but they are not well-presented. It is important to explore
locality and try to transfer more data per disk transaction.
The idea of improving access performance based on parameters
of disks and processors is interesting as well. There is
no data comparing the number of reads and writes to support
the decision of optimizing reads though.
----------------------------------------------------------

Title: "The Design and implementation of a Log-Structured File System"

This paper proposes a new disk storage technique called a
log-structured file system. The aim is to make disk accesses
more efficient and thereby reduce the impact of the gap
between CPU speeds and disk access times.

The main idea is that disk traffic will become dominated by writes,
hence, Sprite LFS increases write performance by buffering
file system changes in the file cache and writing all
new information to disk in a sequential structure called the
log, eliminating almost all seeks. In order not to degrade read
performance, Sprite LFS outputs index structure in the log,
permitting random-access retrievals. The log-structure also
makes it possible to recover very quickly after crashes.

For a log-structured file system to operate efficiently, it must
ensure that there are always large extents of free space available
for writing new data. Therefore, the paper uses segments and a
segment cleaner process regenerates empty segments by compressing
data from heavily fragmented segments.

I think that this paper is very well written and all assumptions
and decisions made are well founded. The decision of optimizing
write accesses seems appealing and the structure proposed
appropriate for that. It is also important that write optimizations
do not degrade general read performance.

Renata Teixeira