From: Nicolas Pitre <nico@cam.org>
To: Dana How <danahow@gmail.com>
Cc: Junio C Hamano <junkio@cox.net>,
"Shawn O. Pearce" <spearce@spearce.org>,
git@vger.kernel.org
Subject: Re: [PATCH 1/3] Lazily open pack index files on demand
Date: Sat, 26 May 2007 22:43:36 -0400 (EDT) [thread overview]
Message-ID: <alpine.LFD.0.99.0705262223540.3366@xanadu.home> (raw)
In-Reply-To: <56b7f5510705261031o311b89bapd730374cbc063931@mail.gmail.com>
On Sat, 26 May 2007, Dana How wrote:
> I think there are two interesting strategies compatible
> with maximally-informative timestamps:
>
> (1) git-repack -a -d repacks everything on each call. You would need:
> (1a) Rewrite builtin-pack-objects.c so only the object_ix hash
> accesses the "objects" array directly, everything else
> goes through a pointer table.
> (1b) Sort the new pointer table by object type, in order
> tag -> commit -> tree -> nice blob -> naughty blob.
> The sort is stable so the order within each group is unchanged.
This is not a good idea in general for runtime access to the pack. If
you consider a checkout, the commit object
is looked up, then the root tree object, then each tree entry is
recursively looked up. Right now the way the objects are laid out, the
most recent commit will have all its objects contiguously found in the
pack and in the right order (that means tree and blobs mixed up). This
gets less and less true as you go back into history, but at least the
recent stuff has a really nice access pattern.
Because commit objects are so fundamental to many graph operations they
are already all packed together. But tree and blob objects are
intermixed for the reason stated above.
The naughty blob is a really special category and I think they should be
treated as such. Therefore I don't think the common/normal case should
be impacted with a generic change for something that is still a special
case.
In other words, I think the naughty blob could simply be recognized as
such and be referenced in a special list instead of being written out
initially. Then when everything is believed to be written, the special
list can be walked to force write those naughty blob at last. No need
to modify the current object order.
Nicolas
next prev parent reply other threads:[~2007-05-27 2:43 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-26 5:24 [PATCH 1/3] Lazily open pack index files on demand Shawn O. Pearce
2007-05-26 8:29 ` Junio C Hamano
2007-05-26 17:30 ` Shawn O. Pearce
2007-05-26 17:31 ` Dana How
2007-05-27 2:43 ` Nicolas Pitre [this message]
2007-05-27 4:31 ` Dana How
2007-05-27 14:41 ` Nicolas Pitre
2007-05-27 3:34 ` Shawn O. Pearce
2007-05-27 4:40 ` Dana How
2007-05-27 15:29 ` Nicolas Pitre
2007-05-27 21:35 ` Shawn O. Pearce
2007-05-28 1:35 ` Dana How
2007-05-28 2:30 ` A Large Angry SCM
2007-05-28 18:31 ` Nicolas Pitre
2007-05-28 2:18 ` Nicolas Pitre
2007-05-27 15:26 ` Nicolas Pitre
2007-05-27 16:06 ` Dana How
2007-05-27 21:52 ` Shawn O. Pearce
2007-05-27 23:35 ` Nicolas Pitre
2007-05-28 16:22 ` Linus Torvalds
2007-05-28 17:13 ` Nicolas Pitre
2007-05-28 17:40 ` Karl Hasselström
-- strict thread matches above, loose matches on Subject: below --
2007-05-27 10:46 Martin Koegler
2007-05-27 15:36 ` Nicolas Pitre
2007-05-29 0:09 linux
2007-05-29 3:26 ` Linus Torvalds
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=alpine.LFD.0.99.0705262223540.3366@xanadu.home \
--to=nico@cam.org \
--cc=danahow@gmail.com \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=spearce@spearce.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).