From: Honghai Liu (liu789_at_hotmail.com)
Date: Sun Feb 22 2004 - 09:33:10 PST
The Design and Implementation of a log-structure File System
Reviewer: Honghai Liu
The paper talks about the log-structure file system, which is claimed to be an order of magnitude
better than Unix file system in terms of performance.
With analysis of the popular file systems, cache writing seems to be the only main technology to
deal with slow disk nowadays. The author concludes that two main problems with the modern
file systems, namely, too many small access to disk and synchronously write(it is reasonable that
there is little we can do with read, if there is a read cache miss). With the observation of relatively
little improvements on disk access technology to other parts, especially CPU, there is a clear
motivation for the author to try something better on file system.
The whole idea of the paper is to use log-structure file system (Sprite LFS) to improve write
performance by buffering a sequence of file system changes in the file cache and then writing
all the changes to the disk sequentially in a single disk write operation. So the log-structured file
system converts the small random writes into large asynchronous sequential transfer. In order to
make inode (Unix) not fixed, which is the key to sequential writes and cleaning strategy, the
inode-map is invented is to maintain the current location of each Unix-like inode. Luckily, the
inode-map structure is very compact so all of them can be kept in main memory. With the help
of i-node map and ability to sequentially group inode, inode-map and data, the LFS would only
require one disk operation to create 2 files in 2 directories, while Unix file system needs 10 disk accesses.
The rest of the paper covers the cleaning algorithms to combine the use of thread log and copy/compact
log free space management approaches to make sure the disk fragments are cleaned efficiently. It is
interesting to know that there is a cost-performance trade-off between disk fragmentation and disk fullness.
The more the disk blocks are occupied, the more the cleaning mechanism will help, at the cost of the disk
utilization. Later on, the author discusses on optimization o f policy decision of cleaning depending on
different of hot and cold files(or more precisely segments).
The paper is a important one, given the huge performance implication over contemporary Unix file system,
but I am little disappointed that the author spent too much time on cleaning strategy rather than exploring
more on improving disk writing and reading themselves.
This archive was generated by hypermail 2.1.6 : Sun Feb 22 2004 - 09:33:15 PST