I worked the last weeks on a promising approach to a media/archive filesystem called vaultfs.
With the power of django, python and fuse implementing is a lot of fun with good progress. It’s not yes useable, but some filesystem features like directories and symlinks already work. It’s approach is very different from what I have seen so far.
It’s a merging filesystem which will merge different source medias into one large mountpoint. This mountpoint will be generated out of contents in the sql database and content from real filesystems as well a cache.
For example: you have a DVD with movie x and linked this file into a directory movies. If you try to access this file (not the meta data which will be in sql, too), the filesystem will determin if there a any copies of this file and different sources, the one with less interaction for the user first. If it finds the file, it is copied to the cache directory and served. So in the DVD case the movie from the DVD is copied to cache and served. Thus, the DVD will spin down as fast as possible.
There are also features implemented like meta directories which do not exist on the real medium but only in the vaultfs mountpoint. I copied the raiser4 approach here with the “…” prefix. Every directory has a “…metas” subdirectory with informations about the directory.
The top level directory holds additions meta directories to indexed medias for example.