Just an idea I had : a versioned filesystem

I have started to learn clearcase yesterday at work.

Today, I had an idea based on clearcase concept of view. A view is a set of rules that give for each file of the repository which version to see in the view. Moreover, they have a filesystem that is mounted on this view. So it's transparent for any application that access the filesystem.

My idea : implementing a "JNode native" versioned filesystem. This can be the base for a CVS server running on JNode but also a base for any other existing or new versioning system.
However, it can also help any JNode user to restore a deleted or modified file but not only the
previous version.

Ok, the concept is not really new. I know that in Linux their is a journalized filesystem.

Don't you think it can be usefull ?

I would like it

I don't really know what clearcase is, but a (file)system with built-in versioning would be really nice. Of course it should normally be turned off and users might enable versioning only for certain files / directories.

Do journalized filesystems really help with maintaining old versions of a file, or do they only keep the old versions of files that are still open and have newer versions in the filesystem cache or so?

Sebastian

like in vms / openvms

Hi to all,
this feature has been present in last years (10 or more) in VMS before and OpenVMS now ... someone remember the old VAX Systems ??

This is realized appending ad the end of any file nale a ;version_number ... simple. Any application by default opens the last version of the file, and it's possible to set (at system level, and maybe at user-level) the maximum number of versions, with auto-purge of old files.

To open the last version of any file you don't need to write filename;version but to open a previous release yes. It's very simple.

But this have an impact in system performances and disk space plus a subtle problem: the version number is a 16 bit value, and in some cases if a file reach the 65.xxx version you need to purge the old versions ... but is a rare situation.

I don't understand because all the other operating systems (born after VMS) have never been this (for me useful) feature. But I don't know if Linux Filesystems at the moment are compatible with this (maybe ReiserFS 4 with a custom plug-in).

Note:
some weeks ago I've deployed a (compiled) Java application (1.4.2) to an OpenVMS System (n 64-bit ALPHA Processor in a n nodes Cluster, with n Giga of RAM !!) and all works good and fast: thank's Java !!

If you need some link, all of this was Digital, and then Hewlett-Packard now.

For Sebastian:
a journalized filesystems maintains old versions of a file but inaccessible for applications because they are only for data integrity, like REDO LOGS in Enterprise DBs like Oracle ... more or less.

Bye,
Sandro