Subject: Re: [PATCH 0/4] Honor core.deltaBaseCacheLimit during index-pack

From: "Shawn O. Pearce" <[email-masked]>
Date: Tue, 15 Jul 2008 04:19:29 +0000

Jakub Narebski <[email-masked]> wrote:
> Johannes Schindelin <[email-masked]> writes:
> > On Mon, 14 Jul 2008, Shawn O. Pearce wrote:
> 
> > > The only other alternative I can come up with is to change pack-objects 
> > > (or at least its defaults) so we don't generate these massive delta 
> > > chains.  But there are already packs in the wild that use these chains, 
> > > resulting in performance problems for clients.
> > 
> > But the long chains make the pack actually as efficient as it is...
> 
> Perhaps Shawn thought here about limiting delta chain not by its
> *length*, but by its *size* (as required when unpacking last object
> in a delta chanin).
> 
> What do you think about this idea?

I was talking about that.  Or at least thinking it.  But its not a
good solution, as Dscho points out those long chains is what makes
the pack file such a powerful source code compressor.

IMHO the right solution is to continue to allow these long chains,
especially since they are typically used for the older, less often
accessed objects, and use bounded caching where necessary in the
readers to avoid unpacking costs.  We already have a bounded cache
for the random access case used by most programs.  What we missed
was the bounded cache in index-pack, and my 4 patch series is an
attempt to define that.

-- 
Shawn.