Log-structured file system

This is an old revision of this page, as edited by 88.11.5.40 (talk) at 19:53, 17 November 2006 (typo). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
This is about the concept of a log-structured file system. For the NetBSD file system, see Log-structured File System.


A log-structured filesystem is a file system design first proposed by John K. Ousterhout and Fred Douglis. It writes data to the file system in a sequential "log" format, as opposed to the normal scattered blocks format.

Rationale

Conventional filesystems tend to lay out files on disk with great care for spatial locality and make in-place changes to data structures on disk in order to perform well on magnetic disks, which tend to seek relatively slowly.

The design of log-structured filesystems is based on the hypothesis that this will no longer be effective because ever-increasing memory sizes on modern computers would lead to disk I/O becoming write-heavy because disk reads would be almost always satisfied from memory cache.

To maximize write throughput, a log-structured file system treats the disk as a circular log and writes sequentially to the head of the log. This has the side effect of creating multiple, chronologically-advancing versions of both file data and meta-data. This log is undoable.

Such filesystems:

  • May allow access to old versions of files or the filesystem, a feature sometimes called time-travel or snapshotting.
  • Recover quickly after crashes because consistency checks are needed only from the last consistent point in the log. (Called roll-forward, this mechanism is explained on the talk page.)
  • Tend to have good write performance.

Implementations

Log-structured file systems have also been used on storage media like flash memory and CD-RW for entirely different reasons. These degrade slowly as they are written to and have a limited number of erase/write cycles:

  • UDF, and
  • JFFS2 are both log-structured file systems.

Compared to conventional file systems, these file systems use fewer in-place writes, improving wear levelling and prolonging the life of the device.

References

  1. ^ Cite error: The named reference rosenblum92 was invoked but never defined (see the help page).