All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: Junio C Hamano <junkio@cox.net>, Nicolas Pitre <nico@cam.org>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: Efficiency of initial clone from server
Date: Mon, 12 Feb 2007 00:11:08 -0500	[thread overview]
Message-ID: <20070212051108.GB699@spearce.org> (raw)
In-Reply-To: <9e4733910702112101h256b1468j5de65c6e89109a22@mail.gmail.com>

Jon Smirl <jonsmirl@gmail.com> wrote:
> But pack to the original point, can't the server check and see if it
> has write access so that it can keep the fully packed tree? I've just
> caused kernel.org to needlessly repack the wireless-dev tree a dozen
> times playing with this clone command. If it didn't have to keep
> repacking for the clone, clone would be a lot faster.

We probably could.

I have actually been thinking about another problem that is
somewhat related.  We cannot put more than 4 GiB of data into a
single packfile, due to the current index size limitation, or more
than 2^32-1 objects into one packfile, due to the header nr_objects
field size.

Right now we are sending a single packfile down to the client,
even if the remote server end has the repository broken down into
a couple of packfiles (such as "really old historical stuff" and
"active stuff from this year").  If we could send more than one
packfile to the client in a single stream, we could still keep the
file size limitations.

We can also avoid this huge repack case on the server.  Because it
could just send all of the packfiles that it already has, followed
by whatever is loose which wasn't in a prior packfile.  And no
write access required.

Of course, we still could do the optimization of caching the
packfile, but I'm not sure how well that would work on kernel.org,
as I understand the trees are owned by the devs which created them
while the git daemon is probably not running as their UNIX user.

-- 
Shawn.

  reply	other threads:[~2007-02-12  5:11 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-11 19:53 Efficiency of initial clone from server Jon Smirl
2007-02-11 22:53 ` Shawn O. Pearce
2007-02-11 23:25   ` Jon Smirl
2007-02-11 23:51     ` Jon Smirl
2007-02-12  1:38     ` Nicolas Pitre
2007-02-12  2:15       ` Jon Smirl
2007-02-12  3:55         ` Nicolas Pitre
2007-02-12  4:49           ` Shawn O. Pearce
2007-02-12 16:42             ` Nicolas Pitre
2007-02-12  4:16       ` Junio C Hamano
2007-02-12  4:29         ` Jon Smirl
2007-02-12  4:33           ` Junio C Hamano
2007-02-12  4:53             ` Jon Smirl
2007-02-12  5:01               ` Jon Smirl
2007-02-12  5:11                 ` Shawn O. Pearce [this message]
2007-02-12  5:17                   ` Jon Smirl
2007-02-12 15:20                     ` Nicolas Pitre
2007-02-12 19:35                       ` Theodore Tso
2007-02-12 20:53                         ` Junio C Hamano
2007-02-12 21:33                           ` Nicolas Pitre
2007-02-13  0:51                           ` Jakub Narebski
2007-02-12  5:30                 ` Junio C Hamano
2007-02-12  5:55                   ` Jon Smirl
2007-02-12  6:08                     ` Junio C Hamano
2007-02-12 15:24                       ` Jon Smirl
2007-02-12 16:40                         ` Jon Smirl
2007-02-12 17:04                           ` Shawn O. Pearce
2007-02-12 11:45                   ` Johannes Schindelin
2007-02-12 14:31                     ` Jon Smirl
2007-02-12 17:06                       ` Shawn O. Pearce
2007-02-13 15:03               ` Andreas Ericsson
2007-02-11 23:29   ` Jon Smirl

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=20070212051108.GB699@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=jonsmirl@gmail.com \
    --cc=junkio@cox.net \
    --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.