login
Header Space

 
 

Versioning file system

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-kernel@...>
Cc: <linux-fsdevel@...>, <akpm@...>, <viro@...>
Date: Friday, June 15, 2007 - 6:23 pm

I hope I got the CC list right. Apologies to anyone in didn't include
and anyone I shouldn't have included.

The basic idea is to include an idea from VMS that seems to be quite
useful: version numbers for files.

The idea is that whenever you modify a file the system saves it to na
new copy leaving the old file intact. This could be a great advantage
from many view points:
	1) it would be much easier to do package management as the old
		version would be automatically saved for a package
		management system to deal with.

	2) backups would also be easier as all versions of a file
		are automatically saved so it could be potentially very
		useful for a company or the like.

There are probably many others but these were the two that I liked best.

Revision numbers could be specified as follows:
	/path/to/file:revision_number


I think that this can be done without breaking userspace if the default
was to open the highest revision file if no revision number is
specified. The userspace tools would need to be updated to take full
advantage of the new system but if the delimiter between the path and
revision number were chosen sensibly then the changes to most of
userspace would be minimal to non-existant.

Personally, I think that the bulk of the implementation could be in the
core fs code and the modifications to individual filesystems would be
minimal. The main implementation ideas I have (however, I am no kernel
expert =) are adding an extra field to struct file and struct inode
called int revision (as version is already taken) that would hold the
number of the file revision being accessed.

Another problem could be the increased usage of disk space. However if
only deltas from the first version were stored then this could cut down
on space, or if this were too slow to open a file then the deltas could
be off every tenth revision (ie 0,10,20,30... where 0,10,20... are full
copies of the file).

There would need to be a tool of some describtion to remove old
revisions but this should not be a major undertaking as it may be
something as simple as a new system call. This would have to be careful
to update any deltas that were affected by the removal of previous
revisions but that could be taken care of in kernel space.

Thanks to anyone who stuck with me this far =). I don't know how widely
useful this may be but that's the reason I posted before trying to code
anything. I would very much value any contributions even a reasoned NAK
as I'm still learning how kernel development works (and I would love any
implementation directions)

Jack
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Versioning file system, Jack Stone, (Fri Jun 15, 6:23 pm)
Re: Versioning file system, Kok, Auke, (Fri Jun 15, 6:57 pm)
Re: Versioning file system, alan, (Fri Jun 15, 7:01 pm)
Re: Versioning file system, Johannes Weiner, (Sat Jun 16, 7:20 am)
Re: Versioning file system, Chris Snook, (Fri Jun 15, 6:52 pm)
Re: Versioning file system, Jack Stone, (Sat Jun 16, 4:25 am)
Re: Versioning file system, Chris Snook, (Tue Jun 19, 2:03 pm)
Re: Versioning file system, Lennart Sorensen, (Tue Jun 19, 4:43 pm)
Re: Versioning file system, Bryan Henderson, (Tue Jun 19, 7:35 pm)
Re: Versioning file system, Trond Myklebust, (Tue Jun 19, 8:27 pm)
Re: Versioning file system, Bryan Henderson, (Wed Jun 20, 1:04 pm)
Re: Versioning file system, Chris Snook, (Wed Jun 20, 1:33 pm)
Re: Versioning file system, H. Peter Anvin, (Wed Jun 20, 1:10 pm)
Re: Versioning file system, H. Peter Anvin, (Wed Jun 20, 1:00 am)
Re: Versioning file system, , (Tue Jun 19, 6:07 pm)
Re: Versioning file system, Lennart Sorensen, (Tue Jun 19, 6:21 pm)
Re: Versioning file system, H. Peter Anvin, (Tue Jun 19, 6:13 pm)
Re: Versioning file system, Jan Harkes, (Tue Jun 19, 7:07 pm)
Re: Versioning file system, H. Peter Anvin, (Tue Jun 19, 7:12 pm)
Re: Versioning file system, H. Peter Anvin, (Tue Jun 19, 3:08 pm)
Re: Versioning file system, Alan Cox, (Tue Jun 19, 5:50 pm)
Re: Versioning file system, H. Peter Anvin, (Tue Jun 19, 6:07 pm)
Re: Versioning file system, Ph. Marek, (Wed Jun 20, 4:05 am)
Re: Versioning file system, Jack Stone, (Tue Jun 19, 3:12 pm)
Re: Versioning file system, Bernd Petrovitsch, (Wed Jun 20, 4:34 am)
Re: Versioning file system, Chris Snook, (Tue Jun 19, 4:10 pm)
Re: Versioning file system, Jack Stone, (Tue Jun 19, 4:14 pm)
Re: Versioning file system, Chris Snook, (Tue Jun 19, 4:31 pm)
Re: Versioning file system, H. Peter Anvin, (Tue Jun 19, 3:15 pm)
Re: Versioning file system, Jack Stone, (Tue Jun 19, 3:22 pm)
Re: Versioning file system, Jack Stone, (Tue Jun 19, 3:06 pm)
Re: Versioning file system, Chris Snook, (Tue Jun 19, 4:03 pm)
Re: Versioning file system, Jack Stone, (Tue Jun 19, 4:08 pm)
Re: Versioning file system, John Stoffel, (Tue Jun 19, 4:34 pm)
Re: Versioning file system, Matthew Wilcox, (Tue Jun 19, 4:38 pm)
Re: Versioning file system, John Stoffel, (Tue Jun 19, 5:02 pm)
Re: Versioning file system, Jack Stone, (Tue Jun 19, 4:38 pm)
Re: Versioning file system, Chris Snook, (Tue Jun 19, 4:15 pm)
Re: Versioning file system, Jack Stone, (Tue Jun 19, 4:27 pm)
Re: Versioning file system, H. Peter Anvin, (Fri Jun 15, 6:38 pm)
Re: Versioning file system, alan, (Fri Jun 15, 6:51 pm)
Re: Versioning file system, Jörn, (Sat Jun 16, 10:53 am)
Re: Versioning file system, Andreas Dilger, (Mon Jun 18, 5:45 am)
Re: Versioning file system, Sorin Faibish, (Sat Sep 29, 1:44 pm)
Re: Versioning file system, Chris Mason, (Mon Jun 18, 11:32 am)
Re: Versioning file system, Bron Gondwana, (Mon Jun 18, 7:18 pm)
Re: Versioning file system, Theodore Tso, (Mon Jun 18, 10:01 am)
Re: Versioning file system, alan, (Mon Jun 18, 12:16 pm)
Re: Versioning file system, Theodore Tso, (Mon Jun 18, 1:29 pm)
Re: Versioning file system, Erik Mouw, (Wed Jul 4, 1:32 pm)
Re: Versioning file system, John Stoffel, (Thu Jul 5, 9:57 am)
Re: Versioning file system, Erik Mouw, (Thu Jul 5, 1:57 pm)
Re: Versioning file system, Chris Mason, (Thu Jul 5, 10:23 am)
Re: Versioning file system, Theodore Tso, (Wed Jul 4, 4:47 pm)
Re: Versioning file system, Erik Mouw, (Thu Jul 5, 1:55 pm)
Re: Versioning file system, Jeremy Allison, (Mon Jun 18, 1:33 pm)
Re: Versioning file system, Theodore Tso, (Mon Jun 18, 4:30 pm)
Re: Versioning file system, J. Bruce Fields, (Mon Jun 18, 4:50 pm)
Re: Versioning file system, H. Peter Anvin, (Mon Jun 18, 1:46 pm)
Re: Versioning file system, Jörn, (Mon Jun 18, 6:13 am)
Re: Versioning file system, Jack Stone, (Mon Jun 18, 5:54 am)
Re: Versioning file system, Jack Stone, (Sat Jun 16, 4:11 am)
Re: Versioning file system, Jeffrey V. Merkey, (Sat Jun 16, 5:46 am)
Re: Versioning file system, Graham Murray, (Sat Jun 16, 7:42 am)
Re: Versioning file system, Jeffrey V. Merkey, (Sat Jun 16, 6:12 am)
Re: Versioning file system, Jan Harkes, (Sat Jun 16, 12:49 pm)
Re: Versioning file system, Jeffrey V. Merkey, (Sat Jun 16, 4:03 pm)
Re: Versioning file system, Dale Amon, (Sat Jun 16, 5:06 pm)
Re: Versioning file system, Jan Harkes, (Sat Jun 16, 4:39 pm)
Re: Versioning file system, Alan Cox, (Sat Jun 16, 6:17 pm)
Re: Versioning file system, Dale Amon, (Sun Jun 17, 6:11 pm)
Re: Versioning file system, Jeffrey V. Merkey, (Sat Jun 16, 10:18 pm)
Re: Versioning file system, Jeffrey V. Merkey, (Sat Jun 16, 10:39 pm)
Re: Versioning file system, Jack Stone, (Sat Jun 16, 4:43 pm)
Re: Versioning file system, Alan Cox, (Sat Jun 16, 4:08 pm)
Re: Versioning file system, Jeffrey V. Merkey, (Sat Jun 16, 5:25 pm)
Re: Versioning file system, Jack Stone, (Sat Jun 16, 3:38 pm)
Re: Versioning file system, Mark Williamson, (Sat Jun 16, 9:15 am)
Re: Versioning file system, Jeffrey V. Merkey, (Sat Jun 16, 3:57 pm)
Re: Versioning file system, H. Peter Anvin, (Fri Jun 15, 6:59 pm)
Re: Versioning file system, alan, (Fri Jun 15, 7:06 pm)
speck-geostationary