All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Vilain <sam@vilain.net>
To: Nicolas Pitre <nico@cam.org>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH] [RFC] Generational repacking
Date: Fri, 08 Jun 2007 09:29:00 +1200	[thread overview]
Message-ID: <4668789C.7010104@vilain.net> (raw)
In-Reply-To: <alpine.LFD.0.99.0706070932000.12885@xanadu.home>

Nicolas Pitre wrote:
> >> Well that depends how many loose objects there are :)  I heard about on
>> Windows a case where packing 30k loose objects took over an hour.
> > And your patch cannot change anything to that, right?
> You shouldn't wait until 30k loose objects accumulate before repacking.

Absolutely.  But the generational approach would make it practical to
repack very often, in fact automatically, and keep the time of that
repack reasonably bounded.  As I said in the original patch, the
intention is that this style of repacking works best when applied
automatically, perhaps on commit.

>> If you repack every 100 objects without -a, sure it will be fast, but
>> you'll end up with too many packs.
> You just need to adjust this treshold of 100 objects.
> And latest GIT behaves _much_ better with lots of packs, almost like if 
> there was only one pack.  See the test results I posted to the list.

The test run with 66 packs?  What about a repository with 300000 objects
that was repacked every 100 new objects, would it work well with with
3000 packs?  Surely there is some value in conglomerating older packs,
even though your LRU patch might make it very small (which I do find
impressive).  Do you really need me to prove this with a benchmark?

"Adjust the threshold" you have already said.  But the problem with that
is what to?  I want the automatic repack to be *fast*.  So making it
larger will make it slower.  But making it too small will make the packs
excessive.

Sam.

  reply	other threads:[~2007-06-07 21:29 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-06 11:08 [PATCH] [RFC] Generational repacking Sam Vilain
2007-06-06 22:46 ` Junio C Hamano
2007-06-06 22:53   ` Sam Vilain
2007-06-07  0:04 ` Dana How
2007-06-07  2:28   ` Sam Vilain
2007-06-07  3:20     ` Nicolas Pitre
2007-06-07  5:13       ` Sam Vilain
2007-06-07 13:38         ` Nicolas Pitre
2007-06-07 21:29           ` Sam Vilain [this message]
2007-06-07 19:46       ` Martin Langhoff
2007-06-07 21:36         ` Sam Vilain
2007-06-07 22:51           ` Martin Langhoff
2007-06-07  3:05   ` Nicolas Pitre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4668789C.7010104@vilain.net \
    --to=sam@vilain.net \
    --cc=git@vger.kernel.org \
    --cc=nico@cam.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.