[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: A forward-thinking thought about deltas in FS design

From: Brad Appleton <brad_at_bradapp.net>
Date: 2003-07-06 06:09:30 CEST

On Sat, Jul 05, 2003 at 04:40:19AM -0400, Greg Hudson wrote:
> axiomatic that the most recent rev of a file should be stored in plain
> text, and earlier revs should be stored as deltas against it, so that
>
> But maybe that's not necessary, with those advanced techniques. Maybe
> we should just store new revs as deltas against older revs, using the
> skip-delta technique to ensure that you only need to go through
> O(lg(n)) deltas to get to any revision.

Is this the same thing as the interleaved (or "inline", or sometimes called "interlaced") delta approach that is used by ClearCase and SCCS (among others?). It works basically like a great big bunch of "#ifdefs" for each delta. If not, can you say more about how it differs from the inline delta approach?

I think the inline approach makes it easier than the reverse-delta (or RCS style with reverse-deltas on the main trunk and forward-delta on branches) when it comes down to doing merge-algebra in an intelligent fashion.

> Cons:
>
> * Checkouts become slower--not by a huge factor, but maybe by a
> noticeable constant factor. For most repositories, checkouts are
> much more common than checkins, so this is a big deal. (However,
> it's easier to make a simpler system perform well, so the tradeoff
> may not be so obvious.)

Once upon a time, back in the mid-80s I worked on a commercial VC tool called SVM (Seidl Version Manager). Where were one of the few VC tools for the PC (other main ones being PVCS, TLIB, and a relative newcomer named MKS ;-). Ours was the only one of that bunch that used forward-deltas. We overcame the performance issue by keeping a cache of the most recent N versions in a cache area (where N could be configured per system, as could the set of files for which to keep the cache - if I recall correctly anyway :)

> * Balancing space and time is harder for the all-important first few
> revs. But I think it's not too bad for normal workloads.

-- 
Brad Appleton <brad@bradapp.net> www.bradapp.net
  Software CM Patterns (www.scmpatterns.com)
   Effective Teamwork, Practical Integration
"And miles to go before I sleep." -- Robert Frost
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Jul 6 06:10:34 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.