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

Re: random access delta streams

From: Branko Čibej <branko.cibej_at_hermes.si>
Date: 2000-11-14 07:59:58 CET

Jim Blandy wrote:
> So if the Subversion filesystem has some 2-gigabyte file, with one
> revision in fulltext and others represented as chains of deltas, I
> could start with the fulltext and chain together stuff with
> seekable_apply_delta, and actually get random access.
>
> Is this even practical? Do I (or, does Greg S.) really have to spew
> the whole 2 gig out into a temporary file to provide random access to
> these things?

It should be possible, i guess. Right now, our delta format doesn't
allow such random-access applying of deltas simply because the windows
aren't indexed. You'd have to store a window lookup table with the
delta in order to convert seek offsets appropriate windows.

But don't forget that a window can describe differences relative to
existing target, not source data. A pure compression would be a
stream of such windows, so when seeking you'd have to decompress
from the beginning of the file up to the seek offset. (SVN doesn't
create such deltas now, although it would take only a small change).

I'm wondering, though: when would you want to put such a large file
under revision control? Typically it'll be a database, which has
its own consistency and versioning mechanism, or a media file
(e.g., video), which is streamy by nature. I'm not saying it doesn't
make sense to store large files, I only think that the applications
for that are relatively few.

Another question: when do you need random access to old versions?
And if you do, wouldn't it make more sense to store them in the
clear, anyway, without having to apply a series of deltas every
time? That's what any caching scheme will boil down to, anyway.

-- 
Branko Čibej                 <branko.cibej@hermes.si>
HERMES SoftLab, Litijska 51, 1000 Ljubljana, Slovenia
voice: (+386 1) 586 53 49     fax: (+386 1) 586 52 70
Received on Sat Oct 21 14:36:14 2006

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.