All of lore.kernel.org
 help / color / mirror / Atom feed
* Authoring a versioning plugin
@ 2006-01-11 22:59 Yoanis Gil Delgado
  2006-01-12  4:09 ` Hans Reiser
  2006-01-12 18:14 ` Peter van Hardenberg
  0 siblings, 2 replies; 24+ messages in thread
From: Yoanis Gil Delgado @ 2006-01-11 22:59 UTC (permalink / raw)
  To: reiserfs-List

This are the intentions:
To write a versioning plugin that will allows the file system user to easily 
revert the files under versioning to a some previous state.  The plugin will 
allow to revert the file state, based on revisions number and date 
modifications(and not sure about this one). There will be a special pseudo 
file named "previous" that will return the previous version of the file. The 
final result should allow to the the following actions:

$ echo 1 > myfile.txt  (let's say we make this command at Wed Jan 11 16:53:55)
$ echo 2 > myfile.txt  (let's say we make this command at Wed Jan 11 16:54:57)
$ echo 3 >> myfile.txt (let's say we make this command at Wed Jan 11 16:55:59)

Suppose you want the latest version, then you type:
$ cat myfile/.../previous
 Some other content
Or you want the n-th version, then you type:
$ cat myfile/.../1
 Some content 
$ cat myfile/.../2
 Some other content
$ cat myfile/.../3
 Some other content
 Some more content
$
Or the version nearest to some date, then you type:
$ cat myfile.txt/.../Wed\ Jan\ 11\ 16:50
 Some other content

Also , there will be an special attribute named under_versioning(or something 
like that), that will tell if the file is under versioning. This plugin will 
not track directories version, although it's a future plan(I think this 
should be mixed with some undelete plugin).  

I'm planning to use a delta techniques for versioning storage (delta 
compression). The versioning will be at the write level. The versions will be 
saved in a special directory under the filesystem. I think the hard part is 
the one related to detecting the changes (a COW it's a possible solution, but 
i think it's to expensive). I'm thinking a possible solution will be 
detecting the bytes changing in each write and archiving then as the 
difference.  This introduce some problems like :
1-) What happens if the file shrinks?
2-) What happens if the file grows ?

I will send another email with a solution to this problems.

I've also plans to extent the documentantion of plugins creation in reiser4 
with the experiences of this project. I'll be working in this plugin for more 
than 4 months. If you're interested you're welcome to the the team(just me 
right now :D )


Well....... I think this is all (for now  :D ). Please let me know what you 
think.





^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2006-01-14 22:23 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-11 22:59 Authoring a versioning plugin Yoanis Gil Delgado
2006-01-12  4:09 ` Hans Reiser
2006-01-12  6:44   ` Hans Reiser
2006-01-12 16:33     ` Jonathan Briggs
2006-01-12 18:33       ` Bedros Hanounik
     [not found]         ` <200601121502.32227.fred@lab.matcom.uh.cu>
2006-01-12 20:08           ` Yoanis Gil Delgado
2006-01-12 21:48         ` David Masover
2006-01-12 22:43           ` Bedros Hanounik
     [not found]             ` <200601121856.00665.fred@lab.matcom.uh.cu>
2006-01-12 23:56               ` Yoanis Gil Delgado
2006-01-13 20:59                 ` Hans Reiser
2006-01-13 16:43             ` David Masover
     [not found]     ` <200601121434.54881.fred@lab.matcom.uh.cu>
2006-01-12 20:05       ` Yoanis Gil Delgado
2006-01-12 19:13         ` Mike Benoit
2006-01-12 18:14 ` Peter van Hardenberg
     [not found]   ` <200601121439.09483.fred@lab.matcom.uh.cu>
2006-01-12 20:06     ` Yoanis Gil Delgado
2006-01-12 21:58   ` David Masover
2006-01-13 20:34   ` Hans Reiser
2006-01-13 21:17     ` Toomas Laasik
2006-01-13 21:48       ` Hans Reiser
2006-01-14 11:56       ` Pierre Etchemaïté
2006-01-13 23:00     ` Jonathan Sailor
2006-01-14  9:07       ` Peter van Hardenberg
2006-01-14 17:28         ` David Masover
2006-01-14 22:23           ` Hans Reiser

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.