From: Manish Mittal (manishm_at_microsoft.com)
Date: Mon Feb 23 2004 - 12:30:39 PST
The paper presents the design of a new kind of file system called
log-structured file-system (LFS). The paper argues that with the arrival
of faster processors, disk accesses have become the main bottleneck to
performance. Also with increased amount of main memory, file caching has
become possible thus making the file reads efficient but writes still
remains the bottleneck. The new method tries to increase the write speed
by writing data sequentially into the disk. The chief advantage of LFS
over traditional file systems is better utilization of disk-bandwidth
and better crash-recovery.
In a LFS, the sequence of file system changes are buffered in a file
cache and then all the changes are written to the disk in a single disk
write operation. The information written to the disk includes file data
blocks, attributes, index blocks, directories, etc. This file system
makes large asynchronous, sequential transfers, thus utilizing complete
disk bandwidth. The biggest problem in a LFS is that there should always
be large extents of free space available for writing new data and that's
why the need for segmentation. These segments are written from the
beginning to the end and all the live data must be copied out of the
segment, before the segment is rewritten. The process of copying live
data out of the segment is called segment cleaning. A special process
called segment cleaner is used which copies the data into memory and
writes back only the live data into a small number of clean segments
This also seems quite similar to Windows defrag utility & garbage
collector. In order to determine the segments that are to be cleaned
LFS's policy is to balance the cost and the benefit of using the cleaner
process. The logic used is that the older the data in a segment, the
more likely it is to remain unchanged.
Crash recovery is another feature in LFS. The theory behind this is
taken straight from the Database. For disaster recovery, LFS uses
checkpoints and roll-forward techniques. When the file system crashes,
the LFS find last checkpoint and roll-forward to the end of log.
Checkpoint represents consistent version of file system. Roll-forward
applies changes made since last checkpoint.
Even though the main ideas in LFS are borrowed from database design
(logs) and programming languages (garbage collection/cleaning), this is
probably the first time these ideas are applied to the File system. On
the performance front, they outperform Unix:FFS in writing data to disk
thus improving disk performance.
This archive was generated by hypermail 2.1.6 : Mon Feb 23 2004 - 12:30:19 PST