From: Tom Lord <lord@regexps.com>
To: reiser@namesys.com
Cc: andrew@pimlott.ne.mediaone.net, lm@work.bitmover.com,
Geert.Uytterhoeven@sonycom.com, james@and.org, lm@bitmover.com,
jaharkes@cs.cmu.edu, linux-kernel@vger.kernel.org
Subject: filesystem transactions (was Re: linux-2.5.4-pre1 - bitkeeper testing)
Date: Thu, 14 Mar 2002 01:39:14 -0800 (PST) [thread overview]
Message-ID: <200203140939.BAA14739@morrowfield.home> (raw)
In-Reply-To: <3C8FA608.6040103@namesys.com> (message from Hans Reiser on Wed, 13 Mar 2002 22:18:32 +0300)
In-Reply-To: <20020312223738.GB29832@pimlott.ne.mediaone.net> <Pine.GSO.4.21.0203131037240.17582-100000@vervain.sonytel.be> <20020313143720.GA32244@pimlott.ne.mediaone.net> <20020313082647.Y23966@work.bitmover.com> <20020313163045.GA6575@pimlott.ne.mediaone.net> <3C8FA608.6040103@namesys.com>
On this thread, you (Hans) seem to be referring to some plan you have
for putting versioning functionality in the filesystem and that you
think this somehow gives you (at least significant parts of) revision
control nearly for free. It isn't clear from just the messages in
this thread exactly what plan for versioning you have in mind.
It's an interesting topic, though. Is there a document available that
actually specifies what you have in mind?
Leaving aside the question of remote access, a useful filesystem
primitive for revision control would be the ability to quickly create
copy-on-write clones of trees (much like the Subversion model, but as
a true file system, and without the need to store modified files as
diffs).
One could do that reasonably well entirely in user space in a portable
way by using `link(2)' to create the clones and imposing a layer
between libc `open(2)' and the kernel call, though every program on
the system would have to be linked with that special version of
`open'. An in-kernel implementation would have the slight advantages
that it wouldn't require a special version of `open' and could,
perhaps, at the cost of some complexity, create clone trees more
cheaply when the expected case is that large subtrees will never be
modified in either the original or the copy.
Another user-space approach, less successful at creating clones
quickly but portable, venerable, and not requiring a special version
of `open' is to make the clones read-only and create them with a
program that copies modified files, but links unmodified files to
their identical ancestors in earlier clones.
One can also do cheap tree cloning reasonably well using directory
stacks and an automounter: a solution based on kernel primitives with
no particular impact on the representation of the filesystem on disk,
implementable at a higher level and compatible with all underlying
disk representations.
Of course, automated file backups of the sort described in this thread
for VMS, are not particularly helpful for revision control.
Finally, if clones really are cheap to create, that gives us an 80%
solution for generalized filesystem transactions. Adding the ability
to do page-based copy-on-write for individual files gives us 90%. Put
cheap and well designed user-defined name-spaces in combination
with those features, and we can watch Oracle fall down and go boom.
None of these approaches I've mentioned require anything special from
the filesystem representation on disk. There would be a severe
portability problem and performance limitations to any approach that
does rely on a particular filesystem representation.
So, what exactly is your plan?
-t
next prev parent reply other threads:[~2002-03-13 21:39 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-06 7:33 linux-2.5.4-pre1 - bitkeeper testing Jeramy B. Smith
2002-02-06 15:15 ` Florian Weimer
2002-02-07 16:50 ` Jan Harkes
2002-02-07 23:06 ` Tom Lord
2002-02-07 21:23 ` Daniel Phillips
2002-02-07 21:23 ` Paul P Komkoff Jr
2002-02-07 21:28 ` Larry McVoy
2002-02-07 21:25 ` Larry McVoy
2002-02-08 15:33 ` Pavel Machek
2002-02-08 21:35 ` Larry McVoy
2002-02-11 8:20 ` Josh MacDonald
2002-02-11 15:00 ` Larry McVoy
2002-02-11 20:25 ` Pavel Machek
2002-02-11 22:14 ` Larry McVoy
2002-02-12 5:17 ` Tom Lord
2002-02-12 3:59 ` Theodore Tso
2002-02-12 6:19 ` Bernd Eckenfels
2002-02-12 20:28 ` Tom Lord
2002-02-12 22:54 ` Larry McVoy
2002-02-13 0:52 ` Daniel Phillips
2002-02-13 10:35 ` Roman Zippel
2002-02-13 9:41 ` Tom Lord
2002-02-12 11:01 ` Josh MacDonald
2002-02-12 11:15 ` Jeff Garzik
2002-02-18 18:10 ` Eric W. Biederman
2002-03-10 8:36 ` Hans Reiser
2002-03-10 19:41 ` Itai Nahshon
2002-03-10 20:19 ` Hans Reiser
2002-03-10 21:16 ` Rob Turk
2002-03-10 21:34 ` Alan Cox
2002-03-10 21:23 ` Rik van Riel
2002-03-11 8:22 ` Hans Reiser
2002-03-10 21:28 ` Alexander Viro
2002-03-11 11:04 ` Mark H. Wood
2002-03-11 9:46 ` Harald Arnesen
2002-03-11 14:05 ` Luigi Genoni
2002-03-10 21:37 ` Richard Gooch
2002-03-11 5:48 ` Hans Reiser
2002-03-11 5:52 ` Alexander Viro
2002-03-11 6:15 ` Hans Reiser
2002-03-11 6:37 ` Alexander Viro
2002-03-11 13:13 ` yodaiken
2002-03-11 15:51 ` Hans Reiser
2002-03-11 16:08 ` yodaiken
2002-03-11 16:56 ` Hans Reiser
2002-03-11 22:51 ` James Antill
2002-03-12 7:58 ` Hans Reiser
2002-03-12 22:37 ` Andrew Pimlott
2002-03-13 8:09 ` Hans Reiser
2002-03-13 15:10 ` Andrew Pimlott
2002-03-13 9:39 ` Geert Uytterhoeven
2002-03-13 14:37 ` Andrew Pimlott
2002-03-13 16:26 ` Larry McVoy
2002-03-13 16:30 ` Andrew Pimlott
2002-03-13 19:18 ` Hans Reiser
2002-03-14 9:39 ` Tom Lord [this message]
2002-03-14 8:26 ` filesystem transactions (was Re: linux-2.5.4-pre1 - bitkeeper testing) Hans Reiser
2002-03-14 10:31 ` Eric W. Biederman
2002-03-11 6:42 ` linux-2.5.4-pre1 - bitkeeper testing Richard Gooch
2002-03-11 10:46 ` Mark H. Wood
2002-03-11 11:32 ` Hans Reiser
2002-03-11 15:29 ` Steven Cole
2002-03-11 16:08 ` Hans Reiser
2002-03-11 16:25 ` Steven Cole
2002-03-11 17:08 ` Hans Reiser
2002-03-11 17:16 ` Nikita Danilov
2002-03-11 18:22 ` VMS File versions (was RE: linux-2.5.4-pre1 - bitkeeper testing) Robert Pfister
2002-03-11 18:41 ` linux-2.5.4-pre1 - bitkeeper testing Steven Cole
2002-03-11 19:15 ` Hans Reiser
2002-03-11 21:33 ` Steven Cole
2002-03-11 21:54 ` Richard B. Johnson
2002-03-11 22:01 ` Richard B. Johnson
2002-03-11 22:19 ` Steven Cole
2002-03-12 0:14 ` Robert Pfister
2002-03-12 7:54 ` linux-2.5.4-pre1 - bitkeeper testing (If you don't like the closed source nature of Bitkeeper, stop your whining and help out with reiserfs.) Hans Reiser
2002-03-12 1:28 ` linux-2.5.4-pre1 - bitkeeper testing Mark H. Wood
2002-02-08 1:02 ` Tom Lord
2002-02-08 2:32 ` Tom Lord
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=200203140939.BAA14739@morrowfield.home \
--to=lord@regexps.com \
--cc=Geert.Uytterhoeven@sonycom.com \
--cc=andrew@pimlott.ne.mediaone.net \
--cc=jaharkes@cs.cmu.edu \
--cc=james@and.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lm@bitmover.com \
--cc=lm@work.bitmover.com \
--cc=reiser@namesys.com \
/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
all inboxes | Powered by JetHome®