Versioning file system

From Wikipedia, the free encyclopedia

A versioning file system is any computer file system which allows a computer file to exist in several versions at the same time. Thus it is a form of revision control. Most common versioning file systems keep a number of old copies of the file. Some limit the number of changes per minute or per hour to avoid storing large numbers of trivial changes. Others instead take periodic snapshots whose contents can be accessed with similar semantics to normal file access.

Contents

[edit] Similar technologies

[edit] Backup

A versioning file system is similar to a periodic backup, with several key differences.

  • Backups are normally triggered on a timed basis, while versioning occurs when the file changes.
  • Backups are usually system-wide or partition-wide, while versioning occurs independently on a file-by-file basis.
  • Backups are normally written to separate media, while versioning file systems write to the same hard drive (and normally the same folder, directory, or local partition).

[edit] Revision control system

Versioning file systems provide some of the features of revision control systems. However, unlike most revision control systems, they are transparent.

[edit] Journaling file system

Versioning file systems should not be confused with journaling file systems.

[edit] Implementations

[edit] TOPS-20

The first versioning filesystem was introduced in the TOPS-20 operating system.[citation needed]

[edit] Files-11 (OpenVMS)

Main article: Files-11

A powerful example of a file versioning system is built into the OpenVMS operating system from Digital Equipment Corporation. In essence, whenever an application opens a file for writing, the file system automatically creates a new instance of the file, with a version number appended to the name. Version numbers start at 1 and count upward as new instances of a file are created. When an application opens a file for reading, it can either specify the exact file name including version number, or just the file name without the version number, in which case the most recent instance of the file is opened. The file system automatically deletes sufficiently old versions of a file when a new instance is created; the maximum number of files retained is configurable, with an upper limit of 32767.

[edit] Linux

No mainstream Linux file system supports versioning, but a number of experimental/research and lesser-known solutions do, namely:

  • Wayback - User-level Versioning File System for Linux
  • CopyFS - A copy-on-write, versioned filesystem
  • ext3cow

[edit] Others

  • Subversion has a feature called "autoversioning" where a WebDAV source with a subversion backend can be mounted as a file system on systems that support this kind of mount (Linux, Windows and others do) and saves to that file system generate new revisions on the revision control system.[1]

[edit] Related softwares

Following is NOT versioning file system, but related to it. They are backup softwares.

  • The ZFS supports Instantaneous snapshots and clones
  • NILFS, which supports snapshotting.
  • Plan 9 Fossil - A Venti backed Fossil filesystem can provide a similar feature, where periodic snapshots are taken (often hourly) and a selection of these are stored forever into Venti (usually daily), while the others are discarded. This of course doesn't record every version of the file. The previous versions are made available at /archive.
  • Write Anywhere File Layout - NetApp's storage solutions implement a file system called WAFL, which uses snapshot technology to keep different versions of all files in a volume around.
  • pdumpfs, authored by Satoru Takabayashi, is a simple daily backup system similar to Plan9's dumpfs, implemented in the Ruby (programming language). It functions as a snapshotting tool, which makes it possible to copy a whole directory to another location by using hardlinks. Used regularly, this can produce an effect similar to versioning[2].
  • Microsoft Windows
    • Rollback Rx - Allows snapshots of disk partitions to be taken. Each snapshot contains only the differences between previous snapshots, and take only seconds to create. Can be reliably used to keep a Windows OS stable and/or protected from malware.
    • GoBack - The GoBack software for Windows from Symantec enables reversion of files, directories or disks to previous states. It can record a maximum of 8GB in changes, and temporarily stops recording each change in the event of high I/O activity.

[edit] See also

[edit] References

  1. ^ Version Control with Subversion: Next Generation Open Source Version Control
  2. ^ pDumpFS Homepage
Languages