linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Snook <csnook@redhat.com>
To: Jack Stone <jack@hawkeye.stone.uk.eu.org>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	akpm@linux-foundation.org, viro@zeniv.linux.org.uk,
	hpa@zytor.com
Subject: Re: Versioning file system
Date: Tue, 19 Jun 2007 16:03:40 -0400	[thread overview]
Message-ID: <4678369C.7070908@redhat.com> (raw)
In-Reply-To: <4678292B.6000804@hawkeye.stone.uk.eu.org>

Jack Stone wrote:
> Chris Snook wrote:
>> But what you're talking about *will* break userspace.  If I do an ls in
>> a directory, and get pages upon pages of versions of just one file,
>> that's broken.  If I tar up a directory and get a tarball that's
>> hundreds of times larger than it should be, that's broken.  If you want
>> the files to be hidden from userspace applications that don't know about
>> your backup scheme, (and it sounds like you do) then use the existing
>> convention for hidden files, the prepended '.'  This is the universal
>> sign for "don't mess with me unless you know what you're doing".
> 
> The idea was that if you did an ls you would get the latest version of
> the file without the :revision_num. The only visible version would be
> the latest version, i.e. the current system would not change. The idea
> was that it would only show earlier versions if they were specifically
> requested with a :revision_num suffix. In that case the
> filesystem/kernel would need to recognise the suffix and return the
> earlier version of the file.
> 
> The only userspace it would break is files with :num in their name, as I
> haven't seen any files like that I don't think its too big a problem but
> the way of specifiying revisions could be changed.
> 
> Jack

I have one right now:

$ ls /tmp/ksocket-csnook/kdeinit*
/tmp/ksocket-csnook/kdeinit__0  /tmp/ksocket-csnook/kdeinit-:0

Note, I did not pass any special arguments to ls to make it pull up that file. 
You'd have to modify ls to make it do that.  You'd also need to modify 
everything else out there.  There are decades of programs out there that would 
behave differently with the interface you propose.

The more fundamental problem with your proposed interface is that it treats a 
filesystem like an opaque server, instead of a transparent data structure.  You 
want files to be completely invisible to applications that don't know about it, 
unless the user requests it.  Unfortunately, it doesn't work that way. 
Applications ask for a directory listing, and will open the requested file if 
and only if the filename in question appears in that listing.  If you want to 
use this opaque server model, you'd be better served putting it in some parallel 
file system (say, /backup) that won't interfere with naive applications 
accessing the mundane data.  Personally, I like your idea of putting the older 
versions in the same directory hierarchy, but I think you'd have to use .foo 
hidden directories to do it right.

	-- Chris

  reply	other threads:[~2007-06-19 20:04 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-15 22:23 Versioning file system Jack Stone
2007-06-15 22:38 ` H. Peter Anvin
2007-06-15 22:51   ` alan
2007-06-15 22:59     ` H. Peter Anvin
2007-06-15 23:06       ` alan
2007-06-16  8:11     ` Jack Stone
2007-06-16  9:46       ` Jeffrey V. Merkey
2007-06-16 10:12         ` Jeffrey V. Merkey
2007-06-16 13:15           ` Mark Williamson
2007-06-16 19:57             ` Jeffrey V. Merkey
2007-06-16 16:49           ` Jan Harkes
2007-06-16 20:03             ` Jeffrey V. Merkey
2007-06-16 19:38               ` Jack Stone
2007-06-16 20:08               ` Alan Cox
2007-06-16 21:25                 ` Jeffrey V. Merkey
2007-06-16 20:39               ` Jan Harkes
2007-06-16 20:43                 ` Jack Stone
2007-06-16 22:17                 ` Alan Cox
2007-06-17  2:18                   ` Jeffrey V. Merkey
2007-06-17  2:39                     ` Jeffrey V. Merkey
2007-06-17 22:11                   ` Dale Amon
2007-06-16 21:06               ` Dale Amon
2007-06-16 11:42         ` Graham Murray
2007-06-16 14:53     ` Jörn Engel
2007-06-18  9:45       ` Andreas Dilger
2007-06-18  9:54         ` Jack Stone
2007-06-18 10:13         ` Jörn Engel
2007-06-18 14:01         ` Theodore Tso
2007-06-18 16:16           ` alan
2007-06-18 17:29             ` Theodore Tso
2007-06-18 17:33               ` Jeremy Allison
2007-06-18 20:30                 ` Theodore Tso
2007-06-18 20:50                   ` J. Bruce Fields
2007-06-18 17:46               ` H. Peter Anvin
2007-07-04 17:32               ` Erik Mouw
2007-07-04 20:47                 ` Theodore Tso
2007-07-05 17:55                   ` Erik Mouw
2007-07-05 13:57                 ` John Stoffel
2007-07-05 14:23                   ` Chris Mason
2007-07-05 17:57                   ` Erik Mouw
2007-06-18 15:32         ` Chris Mason
2007-06-18 23:18           ` Bron Gondwana
2007-09-29 17:44         ` Sorin Faibish
2007-06-15 22:52 ` Chris Snook
2007-06-16  8:25   ` Jack Stone
2007-06-19 18:03     ` Chris Snook
2007-06-19 19:06       ` Jack Stone
2007-06-19 20:03         ` Chris Snook [this message]
2007-06-19 20:08           ` Jack Stone
2007-06-19 20:15             ` Chris Snook
2007-06-19 20:27               ` Jack Stone
2007-06-19 20:34             ` John Stoffel
2007-06-19 20:38               ` Jack Stone
2007-06-19 20:38               ` Matthew Wilcox
2007-06-19 21:02                 ` John Stoffel
2007-06-19 19:08       ` H. Peter Anvin
2007-06-19 19:12         ` Jack Stone
2007-06-19 19:15           ` H. Peter Anvin
2007-06-19 19:22             ` Jack Stone
2007-06-19 20:10           ` Chris Snook
2007-06-19 20:14             ` Jack Stone
2007-06-19 20:31               ` Chris Snook
2007-06-20  8:34           ` Bernd Petrovitsch
2007-06-19 21:50         ` Alan Cox
2007-06-19 22:07           ` H. Peter Anvin
2007-06-20  8:05             ` Ph. Marek
2007-06-19 20:43       ` Lennart Sorensen
2007-06-19 22:07         ` david
2007-06-19 22:13           ` H. Peter Anvin
2007-06-19 23:07             ` Jan Harkes
2007-06-19 23:12               ` H. Peter Anvin
2007-06-19 22:21           ` Lennart Sorensen
2007-06-19 23:35         ` Bryan Henderson
2007-06-20  0:27           ` Trond Myklebust
2007-06-20  5:00             ` H. Peter Anvin
2007-06-20 17:04             ` Bryan Henderson
2007-06-20 17:10               ` H. Peter Anvin
2007-06-20 17:33               ` Chris Snook
2007-06-15 22:57 ` Kok, Auke
2007-06-15 23:01   ` alan
2007-06-16 11:20     ` Johannes Weiner
     [not found] <OFC119F96F.A721E445-ON882572FE.0055140A-882572FE.00571482@us.ibm.com>
2007-06-18 16:37 ` Jack Stone
2007-06-18 16:56   ` H. Peter Anvin
2007-06-18 17:56   ` Bryan Henderson
2007-06-19  3:10     ` Kyle Moffett
2007-06-19  7:49       ` Jack Stone
2007-06-19  7:58       ` Bron Gondwana
2007-06-20  2:43         ` Kyle Moffett
2007-06-19  9:09       ` Martin Langhoff
2007-06-19 16:52       ` Jakub Narebski
     [not found] <8wst3-3kh-31@gated-at.bofh.it>
     [not found] ` <8wsCC-3wf-21@gated-at.bofh.it>
     [not found]   ` <8wsW4-3UY-3@gated-at.bofh.it>
     [not found]     ` <8wJal-3KA-1@gated-at.bofh.it>
     [not found]       ` <8xm22-4Ql-1@gated-at.bofh.it>
     [not found]         ` <8xq5G-32l-7@gated-at.bofh.it>
     [not found]           ` <8xs7w-69W-21@gated-at.bofh.it>
2007-06-18 20:54             ` Bodo Eggert
2007-06-18 21:08               ` alan
2007-06-18 21:31                 ` H. Peter Anvin
2007-06-18 21:34                   ` Jeremy Allison
2007-06-18 22:10                   ` Theodore Tso
2007-06-18 22:26                     ` Jörn Engel
2007-06-18 21:24                       ` Brad Boyer
2007-06-19  3:15                         ` Kyle Moffett
2007-06-18 22:34                       ` Jeremy Allison
2007-06-18 22:56                       ` alan
2007-06-19  7:01                       ` Theodore Tso
2007-06-18 22:48                     ` Jeremy Allison
2007-06-18 23:00                       ` alan
2007-06-19  7:05                       ` Theodore Tso
2007-06-19 16:52                         ` Jeremy Allison
2007-06-19 16:56                           ` H. Peter Anvin
2007-06-18 22:47                   ` alan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4678369C.7070908@redhat.com \
    --to=csnook@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=jack@hawkeye.stone.uk.eu.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).