Re: [RFC] pack-objects: compression level for non-blobs
- From
David Michael Barr <b@rr-dav.id.au>
- Date
- Nov 26, 2012, 12:35 UTC
- Message-ID
- <575D346F7B9B41D4848315209DF07302@rr-dav.id.au>
- In-Reply-To
- <1353911154-23495-1-git-send-email-b@rr-dav.id.au>
Show 22 quoted lines
> Add config pack.graphcompression similar to pack.compression. > Applies to non-blob objects and if unspecified falls back to pack.compression. > > We may identify objects compressed with level 0 by their leading bytes. > Use this to force recompression when the source and target levels mismatch. > Limit its application to when the config pack.graphcompression is set. > > Signed-off-by: David Michael Barr <b@rr-dav.id.au (mailto:b@rr-dav.id.au)> > --- > builtin/pack-objects.c | 49 +++++++++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 45 insertions(+), 4 deletions(-) > > I started working on this just before taking a vacation, > so it's been a little while coming. > > The intent is to allow selective recompression of pack data. > For small objects/deltas the overhead of deflate is significant. > This may improve read performance for the object graph. > > I ran some unscientific experiments with the chromium repository. > With pack.graphcompression = 0, there was a 2.7% increase in pack size. > I saw a 35% improvement with cold caches and 43% otherwise on git log --raw.
I neglected to mention that this is a WIP. I get failures with certain repositories:
fatal: delta size changed
-- David Michael Barr