Filesystems with versioning support.

We developers can’t do without versioning can we. We write crap html to test our parser and end up committing this as well to the server and then move back to a previous version so that those who use svn to get the bleeding edge version of the software do not get your useless html to laugh at. I was pondering over what advantages versioning could bring to our traditional way of work. I for one use sys-rescue to back up important files on my computer and append the version number to the filename. I just need to browse through this directory in case I screw up.

Anyway, I decided to have a look at operating systems which matched the performance of ext3 and had some form of versioning in them. My first stop was ext3cow from John Hopkins University. I was particularly attracted to it because it contained ext3 in its name.
I then installed ext3cow on a partition reading instructions from http://www.ext3cow.com/Applying%20the%20Patch.html .

I took me quite some time to understand what was going on. I approached ext3cow with the impression that one would have to revert back to a previous version of the fs by probably mounting it somewhere else (probably these are stored as .iso files somewhere so that they can be dumped on other media ?) . I was stumped to see something like this as I read:

[user@machine]$ echo "This is v1 of the file." > foo.txt
[user@machine]$ snapshot
Snapshot on . 
[user@machine]$ echo "This is v2 of the file." > foo.txt
[user@machine]$ cat foo@
This is v1 of the file.

Amazing. This means that I can access files at any given date in the same way as I access a file that currently exists in the filesystem. Now, there are certain drawbacks to this. Who in this world can remember the seconds since epoch the snapshot was taken ? And its not like I am going to access this snapshot seconds after I took one. There is a solution to all this, a gui interface to ext3cow. It should allow you to save these snapshots using a date-structure you want.

One of the drawbacks of the current version of ext3cow is the lack of the ability to delete a snapshot. It did exist in previous versions though.

After a terribly long period of using ext3cow, here is what I feel it needs:

1. A utility to convert ext3 to ext3cow.

2. The ability to delete a snapshot.

3. A better GUI for ext3cow

Here is my idea about versioning filesystems. Someone creates a versioning file-system that gives the user no control whatsoever over the frequency of snapshots taken and over the snapshots themselves. This would enable one to track let’s say the activities on an ATM machine ? Take the pic of a guy who enters through the door, save it, take a snapshot detailing the activities and done. If someone somehow manages to delete the current file, you can bring it back from the snapshot.

Well that’s how it is. I am going to read more about filesystems supporting versioning such as NILFS

0 comments ↓

There are no comments yet...Kick things off by filling out the form below.

Leave a Comment