The future of the Linux filesystem
[Posted November 5, 2003 by corbet]
The upcoming release of Microsoft's "Longhorn" version of Windows is two
years off by the best estimates, but some people are beginning to worry
about whether Linux will be able to compete with the features that Longhorn
is promising. Even when factoring in the (often significant) differences
between what Microsoft promises ahead of time and what it actually
delivers, some feel that Longhorn might be good enough to be worth thinking
about.
The Longhorn feature that attracts the most attention is WinFS,
a new filesystem. WinFS will push an SQL-based database management system
into the filesystem layer, enabling users to use searches to find their
files. With some attention to metadata, Longhorn users will be able to ask
the system to find, say, all of their William Shatner MP3s or all images
of Tux the penguin in a swimsuit. Applications will be able to set up
their own schemas for their specific object types; if mail agents can agree
on a email message schema, then users should be able to switch easily
between them.
Making all of this work well could be an interesting challenge. Making
applications work well on top of WinFS will be another one. Even so, some
people get the sense that Microsoft might just come out with something that
people will want to use. If Linux wants to be able to compete on the
desktop, it may have to provide a WinFS-like interface too.
There are two projects out there which could provide something similar to
WinFS's capabilities. Thankfully, neither one proposes to put an SQL query
engine into the kernel.
One is ReiserFS, a topic which has been covered here before. Hans Reiser
believes that the existence of any sort of storage layer above the
filesystem implies that the filesystem itself has failed in its duty to
organize information in the required way. His Naming System Venture paper
describes a world where filesystems impose no structure on data, leaving
that task instead to the user. A query language (not SQL) would enable
files to be found via free-form searches. In the Reiser vision, everything
- even complex databases - could be implemented directly in the
filesystem.
The current state of ReiserFS is far from that vision. Work so
far has concentrated on the infrastructure that will be necessary to
implement the wider vision - and on the features that can attract funding
for their development. The Reiser4
filesystem, which is in testing now, adds features like built-in
transactions, even better small file performance, and a well-developed
plugin architecture which makes it easier to add advanced features to the
filesystem. The Reiser4 developers hope to get it into the 2.6 kernel, but
it is not clear whether that will happen.
The other approach doesn't involve the kernel at all. The GNOME Storage project plans
to "replace the traditional filesystem with a new document store," but, in
fact, it is built on top of existing filesystems and operates entirely in
user space. GNOME storage is accessed via (a modified version of)
gnome-vfs, so it can operate in user space and be used by GNOME
applications without modifying those applications. Underneath the hood,
GNOME Storage uses PostgreSQL as its object store, though efforts are being
made to make the system portable to other databases. GNOME Storage has an
ambitious set of goals; see the features
document to see where they are heading - and what has already been
done.
Where either of these projects will end up is unclear at this time. What
is clear, however, is that interesting work is being done in the area of
Linux object storage. By the time Longhorn starts showing up on desktops,
it might not be the only system with an interesting new approach to storing
user data.
(
Log in to post comments)