Log Structured File System

From: Manish Mittal (manishm_at_microsoft.com)
Date: Mon Feb 23 2004 - 12:30:39 PST

  • Next message: Brian Milnes: "Review Rosenbloom and Ousterhout"

    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.

     

     


  • Next message: Brian Milnes: "Review Rosenbloom and Ousterhout"

    This archive was generated by hypermail 2.1.6 : Mon Feb 23 2004 - 12:30:19 PST