From: Mark Levedahl <mlevedahl@gmail.com>
To: git@vger.kernel.org
Subject: Re: Performance issue: initial git clone causes massive repack
Date: Sat, 11 Apr 2009 13:24:14 -0400 [thread overview]
Message-ID: <grqjo1$at2$1@ger.gmane.org> (raw)
In-Reply-To: 20090404220743.GA869@curie-int
Robin H. Johnson wrote:
> Hi,
>
> This is a first in my series of mails over the next few days, on issues
> that we've run into planning a potential migration for Gentoo's
> repository into Git.
>
> Our full repository conversion is large, even after tuning the
> repacking, the packed repository is between 1.4 and 1.6GiB. As of Feburary
> 4th, 2009, it contained 4886949 objects. It is not suitable for
> splitting into submodules either unfortunately - we have a lot of
> directory moves that would cause submodule bloat.
>
> During an initial clone, I see that git-upload-pack invokes
> pack-objects, despite the ENTIRE repository already being packed - no
> loose objects whatsoever. git-upload-pack then seems to buffer in
> memory.
>
Have you considered using a bundle as part of the initial clone process? The
idea would be to periodically create a bundle
git bundle create <somename>.bundle [list of refs]
and publish that on your website. A new user would then do
wget $uri-of-bundle
git clone <somename>.bundle
cd $somename
git remote add origin $origin
git fetch
and they have the current repo. As the bundle is a file, it can be
distributed by torrent or other method. The expense of creating the pack in
the bundle is paid exactly once when the bundle is created.
Mark
prev parent reply other threads:[~2009-04-11 17:32 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-04 22:07 Performance issue: initial git clone causes massive repack Robin H. Johnson
2009-04-05 0:05 ` Nicolas Sebrecht
2009-04-05 0:37 ` Robin H. Johnson
2009-04-05 3:54 ` Nicolas Sebrecht
2009-04-05 4:08 ` Nicolas Sebrecht
2009-04-05 7:04 ` Robin H. Johnson
2009-04-05 19:02 ` Nicolas Sebrecht
2009-04-05 19:17 ` Shawn O. Pearce
2009-04-05 23:02 ` Robin H. Johnson
2009-04-05 20:43 ` Robin H. Johnson
2009-04-05 21:08 ` Shawn O. Pearce
2009-04-05 21:28 ` david
2009-04-05 21:36 ` Sverre Rabbelier
2009-04-06 3:24 ` Nicolas Pitre
2009-04-07 8:10 ` Björn Steinbrink
2009-04-07 9:45 ` Jakub Narebski
2009-04-07 13:13 ` Nicolas Pitre
2009-04-07 13:37 ` Jakub Narebski
2009-04-07 14:03 ` Jon Smirl
2009-04-07 17:59 ` Nicolas Pitre
2009-04-07 14:21 ` Björn Steinbrink
2009-04-07 17:48 ` Nicolas Pitre
2009-04-07 18:12 ` Björn Steinbrink
2009-04-07 18:56 ` Nicolas Pitre
2009-04-07 20:27 ` Björn Steinbrink
2009-04-08 4:52 ` Nicolas Pitre
2009-04-10 20:38 ` Robin H. Johnson
2009-04-11 1:58 ` Nicolas Pitre
2009-04-11 7:06 ` Mike Hommey
2009-04-14 15:52 ` Johannes Schindelin
2009-04-14 20:17 ` Nicolas Pitre
2009-04-14 20:27 ` Robin H. Johnson
2009-04-14 21:02 ` Nicolas Pitre
2009-04-15 3:09 ` Nguyen Thai Ngoc Duy
2009-04-15 5:53 ` Robin H. Johnson
2009-04-15 5:54 ` Junio C Hamano
2009-04-15 11:51 ` Nicolas Pitre
2009-04-22 1:15 ` Sam Vilain
2009-04-22 9:55 ` Mike Ralphson
2009-04-22 11:24 ` Pieter de Bie
2009-04-22 13:19 ` Johannes Schindelin
2009-04-22 14:35 ` Shawn O. Pearce
2009-04-22 16:40 ` Andreas Ericsson
2009-04-22 17:06 ` Johannes Schindelin
2009-04-23 19:30 ` Christian Couder
2009-04-22 14:14 ` Nicolas Pitre
2009-04-22 22:01 ` Sam Vilain
2009-04-22 22:50 ` Björn Steinbrink
2009-04-22 23:07 ` Nicolas Pitre
2009-04-22 23:30 ` Johannes Schindelin
2009-04-23 3:16 ` Nicolas Pitre
2009-04-14 20:30 ` Johannes Schindelin
2009-04-07 20:29 ` Jeff King
2009-04-07 20:35 ` Björn Steinbrink
2009-04-08 11:28 ` [PATCH] process_{tree,blob}: Remove useless xstrdup calls Björn Steinbrink
2009-04-10 22:20 ` Linus Torvalds
2009-04-11 0:27 ` Linus Torvalds
2009-04-11 1:15 ` Linus Torvalds
2009-04-11 1:34 ` Nicolas Pitre
2009-04-11 13:41 ` Björn Steinbrink
2009-04-11 14:07 ` Björn Steinbrink
2009-04-11 18:06 ` Linus Torvalds
2009-04-11 18:22 ` Linus Torvalds
2009-04-11 19:22 ` Björn Steinbrink
2009-04-11 20:50 ` Björn Steinbrink
2009-04-11 21:43 ` Linus Torvalds
2009-04-11 23:24 ` Björn Steinbrink
2009-04-11 18:19 ` Linus Torvalds
2009-04-11 19:40 ` Björn Steinbrink
2009-04-11 19:58 ` Linus Torvalds
2009-04-05 22:59 ` Performance issue: initial git clone causes massive repack Nicolas Sebrecht
2009-04-05 23:20 ` david
2009-04-05 23:28 ` Robin Rosenberg
2009-04-06 3:34 ` Nicolas Pitre
2009-04-06 5:15 ` Junio C Hamano
2009-04-06 13:12 ` Nicolas Pitre
2009-04-06 13:52 ` Jon Smirl
2009-04-06 14:19 ` Nicolas Pitre
2009-04-06 14:37 ` Jon Smirl
2009-04-06 14:48 ` Shawn O. Pearce
2009-04-06 15:14 ` Nicolas Pitre
2009-04-06 15:28 ` Jon Smirl
2009-04-06 16:14 ` Nicolas Pitre
2009-04-06 11:22 ` Matthieu Moy
2009-04-06 13:29 ` Nicolas Pitre
2009-04-06 14:03 ` Robin H. Johnson
2009-04-06 14:14 ` Nicolas Pitre
2009-04-07 10:11 ` Martin Langhoff
2009-04-05 19:57 ` Jeff King
2009-04-05 23:38 ` Robin H. Johnson
2009-04-05 23:42 ` Robin H. Johnson
[not found] ` <0015174c150e49b5740466d7d2c2@google.com>
2009-04-06 0:29 ` Robin H. Johnson
2009-04-06 3:10 ` Nguyen Thai Ngoc Duy
2009-04-06 4:09 ` Nicolas Pitre
2009-04-06 4:06 ` Nicolas Pitre
2009-04-06 14:20 ` Robin H. Johnson
2009-04-11 17:24 ` Mark Levedahl [this message]
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='grqjo1$at2$1@ger.gmane.org' \
--to=mlevedahl@gmail.com \
--cc=git@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).