Re: [zfs-discuss] Re: A versioning FS

2006-10-10 Thread Bill Sommerfeld
On Fri, 2006-10-06 at 00:07 -0700, Richard L. Hamilton wrote:
 Some people are making money on the concept, so I
 suppose there are those who perceive benefits:
 
 http://en.wikipedia.org/wiki/Rational_ClearCase
 
 (I dimly remember DSEE on the Apollos; ...)

I used both fairly extensively.  Much of the apollo DSEE team left HP to
write ClearCase.  Neither are versioning filesystems; instead, both are
software configuration management systems which export a limited virtual
filesystem interface.   With such systems, versioning is not transparent
but instead involves interaction with a CLI or GUI around
checkout/checkin.



___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


[zfs-discuss] Re: A versioning FS

2006-10-06 Thread Richard L. Hamilton
 What would a version FS buy us that cron+ zfs
 snapshots doesn't?

Some people are making money on the concept, so I
suppose there are those who perceive benefits:

http://en.wikipedia.org/wiki/Rational_ClearCase

(I dimly remember DSEE on the Apollos; also some sort of
versioning file type on (probably long-dead) Harris VOS
real-time OS.)
 
 
This message posted from opensolaris.org
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


[zfs-discuss] Re: A versioning FS

2006-10-06 Thread Anton B. Rang
ClearCase is a version control system, though — not the same as file versioning.
 
 
This message posted from opensolaris.org
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


Re: [zfs-discuss] Re: A versioning FS

2006-10-06 Thread Nicolas Williams
On Fri, Oct 06, 2006 at 09:18:16AM -0700, Anton B. Rang wrote:
 ClearCase is a version control system, though — not the same as file 
 versioning.

But they have a filesystem interface.  Crucially, this involves
additional interfaces.  VC cannot be automatic.
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


[zfs-discuss] Re: A versioning FS

2006-10-06 Thread Anton B. Rang
I think our problem is that we look at FV from different angles. I look 
at it from the point of view of people who have NEVER used FV, and you 
look at it from the view of people who have ALWAYS used FV.

That's certainly a part of it. It's interesting reading this discussion, as 
someone who used VMS heavily through about the mid-1980s  then became a UNIX 
sysadmin. File versioning was one of the items I really missed. There are a lot 
of interesting use cases (walk away from terminal, come back, quit emacs, get 
prompted whether to save file -- go ahead, save it, use 'diff' to determine 
what changed, and then delete the newly written file version if the changes are 
unwanted).

Directory pollution really turned out not to be an issue in practice, perhaps 
because the default version limit was relatively small (3 in VMS). It could be 
set per-file or (IIRC) per-directory. If someone didn't want versioning at all, 
they could just set their directory to use one version, and old versions simply 
didn't exist. Alternatively, to see just the most recent versions, ';' would 
refer to the most recent version, so 'dir ;' showed only the filenames and no 
old versions (going from memory here).

Having a delimiter character really did help. On UNIX, we have '/', though 
POSIX prohibits, or at least highly discourages, its use.  Mac OS X uses '/' to 
access named forks (aka named streams, aka extended attributes in the Solaris 
sense). If I do 'ls xyz' I see just xyz.  If I do 'ls xyz/rsrc' and xyz has a 
'resource fork' then I see that. No real reason why I couldn't do 'ls 
xyz/versions', or, preferably, 'ls -V' :-) and see versions. 'diff xyz xyz/-1' 
would diff xyz with its immediately preceding version; 'diff xyz xyz/2' with 
version 2.

(This would be interesting to prototype and do some usability testing.)

I agree that we want a clean interface, that versions should be optional, and 
that they should be exposed via the network. (My home directory is NFS-mounted.)

While disk space is not irrelevant, quotas really help in the multi-user 
scenario. If someone is close to their limits, they can use 'purge' (VMS 
syntax) to remove old versions of their files, or delete specific versions.

I don't agree that version control systems solve the same problem as file 
versioning. I don't want to check *every change* that I make into version 
control -- it makes the history unwieldy. At the same time, if I make a change 
that turns out to work really poorly, I'd like to revert to the previous code 
-- not necessary the code which is checked in. (I suspect there may be some 
versioning systems which allow intermediate versions to be deleted, and I just 
haven't used them, but this still seems complex compared to only checking in 
known-good code.)
 
 
This message posted from opensolaris.org
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


[zfs-discuss] Re: A versioning FS

2006-10-06 Thread Anton B. Rang
People are oriented to their files, not to snapshots.

True, though with NetApp-style snapshots, it's not that difficult to translate 
'src/file.c' to '.snapshot/hourly.0/src/file.c' and see what it was like an 
hour ago. I imagine that a syntax like '.snapshot/22:20/src/file.c' would also 
be easy to use. (On the other hand, zfs currently requires knowledge of where 
the file system is rooted, and knowledge of where the current directory is 
within that filesystem, which IMHO is somewhat confusing to users and requires 
far too much typing.)

I don't have an answer to your question about how to find an earlier version of 
a file with snapshots, though given an intelligent file system, there's no 
reason why we couldn't have a '.version' pseudodirectory (or the like) which 
understood file changes and was virtually populated by analyzing differences in 
the snapshots.
 
 
This message posted from opensolaris.org
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


[zfs-discuss] Re: A versioning FS

2006-10-06 Thread Anton B. Rang
Versioning cannot be automated; taking periodic snapshots != capturing 
application state.

But I think we have existence proofs of operating systems which do automate 
versioning.

It's true that capturing a new version each time a file has been modified and 
closed may not be perfect, but if it works for 99% of user cases, that's good 
for almost everyone. We have a lot of 99% tools (even 'ls' is pretty useless in 
a ten-million-file directory). If we introduce a new API, users won't see the 
benefits because nobody is going to update all of vi, vim, emacs, rsync, ftp, 
sed, cat, cp 
 
 
This message posted from opensolaris.org
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


Re: [zfs-discuss] Re: A versioning FS

2006-10-06 Thread Jonathan Edwards
On Oct 6, 2006, at 23:42, Anton B. Rang wrote:I don't agree that version control systems solve the same problem as file versioning. I don't want to check *every change* that I make into version control -- it makes the history unwieldy. At the same time, if I make a change that turns out to work really poorly, I'd like to revert to the previous code -- not necessary the code which is checked in. (I suspect there may be some versioning systems which allow intermediate versions to be deleted, and I just haven't used them, but this still seems complex compared to only checking in known-good code.) The use cases are somewhat different here.  I would venture to say that a *personal* file versioning system needs to be thought of differently from a *group* co-ordination formal version control system.  Of course there is a fair amount of overlap in both use cases particularly when you consider a global namespace and concurrent access problems as you can see in the cedar or plan9 systems (fossil/venti):http://portal.acm.org/citation.cfm?doid=42392.42398http://cm.bell-labs.com/plan9/And if we were to also consider dynamic linking and versioning for depracated functions, there's another whole level of parallel backwards compatibility interface problems that are become much easier to approach.While this is an FV discussion, I do believe that we need some sort of clearer distinction between FV, VC, DR, CDP, and Snapshotting structured around the usability cases and close/sync vs a forced version mark/branch .. there's too much confusion in this space often with conflicting goals misapplied to often solve similar problems..je
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss