lkml.org 
[lkml]   [2007]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Versioning file system
    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
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-06-19 22:07    [W:4.344 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site