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

Re: optimizing fsfs: reverse diffs?

From: Saulius Grazulis <grazulis_at_akl.lt>
Date: 2005-04-09 17:28:04 CEST

On Friday 08 April 2005 18:03, Mark Phippard wrote:

> FSFS doesn't work quite the way you think.  It uses something called
> skip-deltas.  The bad thing about reverse diffs is that the database has
> to be constantly rewritten.  FSFS wanted to support a permissions
> structure where you only need to have enough permission to write a new
> file.  Existing files are in the database are NEVER updated after they
> have been written.  This also makes for a good incremental backup
> solution.
> The skip-deltas approach is a great compromise.  It yields good
> performance, and better space utilization.  Read the design notes.
> http://svn.collab.net/repos/svn/trunk/notes/skip-deltas
> Mark

Skip deltas are really a good compromise, and incremental backup with FSFS is
great (I have notice it already ;).

But what if:

You last revision an deltas to the back revision. When commiting, you need
just to:

a) write a file of the new revision (complete) -- this is a new file
b) calculate delta of the previous head with the full new revision, and
replace previous head with this delta. One can write a new delta file, and
unlink the old full revision. The only operations are again just writing a
new file, and in addition unlinking old file.

Skip deltas can probably be used to shorten time to retrieve very old

The added benefit of such scheme would be the one can safely move very old
revisions to CD/DVD-ROM, and in this way reduce space occupied by the
repository (assuming that most often accessed are the relatively new
revisions, and the historic stuff needs only to be fetched on rear
occasions ;).

I understand that FSFS code works fine and should not be changed too much, but
just for the sake of discussion... ;)

Saulius Gražulis
Visuomeninė organizacija "Atviras Kodas Lietuvai"
P.Vileišio g. 18
LT-10306 Vilnius
Lietuva (Lithuania)
tel/fax:      (+370-5)-210 40 05
mobilus:      (+370-684)-49802, (+370-614)-36366

  • application/pgp-signature attachment: stored
Received on Sat Apr 9 17:28:35 2005

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

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