Although File Systems are the most widely used form of Content Management System, their mainstream implementations (on Windows and UNIX systems) have been until recently left untouched by various technological and functional innovations, happening in more specialized contexts. For literally tens of years, hierarchical folders have been the only widely accepted way to organize files on personal workstations.BeOS
introduced metadata attributes for files, backed by a relational db, but is now defunct. Google Desktop
provides an effective way to search personal files with the same user experience of web search: not a new idea, but I have always found previous implementations (Windows' search feature, available form 1995) rather unusable.
The next generation, Apple Spotlight
will make heavy use of context-dependent metadata for files, based on a plugin architecture.
But I think that the greatest innovator in this arena is Hans Reiser
. Ten year old Name Systems Ventures
has not only just released ReiserFS4
, but keeps asking the right questions (and providing opinionated answers) back from 2001, in their Future Vision
whitepaper, which challenges estabilished practices and suggests new approaches and new ways. From a recent interview
[...] metafiles are files that are about other files. pseudo files are files that are implemented not by storing and retrieving the data in a regular file but by the plugin calculating what it should construct for read, or performing some operation other than just writing the data somewhere in response to a write. For example, someday cat /home/reiser/mp3s/..../childcat > /dev/dsp will concatenate every file that is a child of my mp3s directory and send it to the speakers.
Someday longer away, you'll be able to use queries in the FS, and send all the blues mp3s that your dad emailed you, or all the mp3s related to "britney spears" and "spoof" to your speakers. Using cat, or other dumb programs absent of querying intelligence. There will be a very very sophisticated naming system, and all the programs in the OS will not need any complexity of their own to tap into the power of sophisticated naming.
Another thing that did not make sense was that in V3, performance for files randomly generated with a uniform distribution in the 0-10k size range was worse if tail packing was turned on. It "should" have been better. In V4 it IS better, for the reasons described at www.namesys.com at quite some length in the part about why BLOBs are a bad design idea. This actually has implications that go far beyond Reiser4 as BLOBs are the dominant paradigm in the database world...