git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] [RFC] Generational repacking

From
Sam Vilain <sam@vilain.net>
Date
Jun 7, 2007, 21:29 UTC
Message-ID
<4668789C.7010104@vilain.net>
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.

Show 5 quoted lines
>> 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.
Previous: Nicolas PitreNext: Martin Langhoff
Message 9 of 13 in “[RFC] Generational repacking”
  1. [RFC] Generational repackingSam Vilain, Jun 6, 2007
  2. Junio C HamanoJun 6, 2007
  3. Sam VilainJun 6, 2007
  4. Dana HowJun 7, 2007
  5. Sam VilainJun 7, 2007
  6. Nicolas PitreJun 7, 2007
  7. Sam VilainJun 7, 2007
  8. Nicolas PitreJun 7, 2007
  9. Sam VilainJun 7, 2007
  10. Martin LanghoffJun 7, 2007
  11. Sam VilainJun 7, 2007
  12. Martin LanghoffJun 7, 2007
  13. Nicolas PitreJun 7, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.