Log-structured file system: Difference between revisions

Content deleted Content added
cite
grammar; reword; remove false information; add some categories
Line 7:
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 a 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 which gives log-structured file systems the same advantages that [[journaling filesystem]]s have.
 
Such filesystems:
* May allow access to old versions of files or the filesystem, a feature sometimes called time-travel or [[snapshot (computer storage)|snapshotting]].
* Recover quickly after crashes because no consistency checks are needed. Instead, the file system simply rolls forwardonly from the last consistent point in the log.<ref name=rosenblum92>{{cite(Called journal''roll-forward''.)
| last = Rosenblum
| first = Mendel
| authorlink = Mendel Rosenblum
| coauthors = [[John K. Ousterhout|Ousterhout, John K.]]
| title = The Design and Implementation of a Log-Structured File System
| journal = ACM Transactions on Computer Systems
| volume = 10
| issue = 1
| pages = 26-52
| date = February 1992
| url = http://www.hhhh.org/perseant/lfs/lfsSOSP91.ps.gz
| format = [[PostScript]]}}</ref>
* Tend to have good write performance.
 
== Implementations ==
 
* [[John K. Ousterhout]] and [[Mendel Rosenblum]] implemented the first log-structured file system for the [[Sprite operating system]] in 1992.<ref name=rosenblum92 />
* [[Log-structured File System|BSD-LFS]], an implementation by [[Margo Seltzer]] was added later to 4.4BSD, and thence was later ported to [[386BSD]]. It lacks support for snapshots. It was removed from FreeBSD and OpenBSD, but still lives on in [[NetBSD]].
 
* [[NILFS]] is a log-structured file system implementation for [[Linux]] by [[NTT/Verio]] which supports snapshots. As of April 2006, however, itIt is still in [[development stage#alpha|alpha]] and not ready for production use.
* [[LogFS]] and [[LinLogFS]] are names used for various Linux log-structured file system implementations, the latest one written for [[Google Summer of Code 2005]], however all of these projects were cancelled.
* [[Reiser4]] usescalls athe concept called a "[[wandering log]] that is similar to the notion of a log-structured file system".
* [[ZFS]] from [[Sun Microsystems|Sun]] is a log-structured file system which supports snapshotting. However, it uses [[reference-counting]] instead of [[garbage collection (computer science)|garbage collection]] to manage free space.
*[[ZFS]]'s ''Intent Log'' improves on the traditional log-structured filesystem.
 
More recently, logLog-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.:
* [[Universal Disk Format|UDF]], and
 
For example, [[Universal Disk Format|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 ==
<references />
 
* Rosenblum, Mendel and Ousterhout, John K. (February 1992) - "[http://www.hhhh.org/perseant/lfs/lfsSOSP91.ps.gz The Design and Implementation of a Log-Structured File System]". ''ACM Transactions on Computer Systems, Vol. 10 Issue 1''. pp26-52.
<references />
* Rosenblum, Mendel and Ousterhout, John K. (June 1990). - "[http://www.hhhh.org/perseant/lfs/lfs-storage.ps.gz The LFS Storage Manager].". ''Proceedings of the 1990 Summer Usenix.''. 315pp315-324.
 
[[Category:Computer file systems]]
[[Category:Computer storage]]
[[Category:Unix]]
[[Category:Berkeley Software Distribution]]
[[Category:Linux]]
[[Category:Sun Microsystems]]