From: Jeff King <peff@peff.net>
To: Kirill Smelkov <kirr@nexedi.com>
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Jérome Perrin" <jerome@nexedi.com>,
"Isabelle Vallet" <isabelle.vallet@nexedi.com>,
"Kazuhiko Shiozaki" <kazuhiko@nexedi.com>,
"Julien Muchembled" <jm@nexedi.com>,
git@vger.kernel.org, "Vicent Marti" <tanoku@gmail.com>
Subject: Re: [PATCH] pack-objects: Use reachability bitmap index when generating non-stdout pack too
Date: Thu, 7 Jul 2016 16:52:23 -0400 [thread overview]
Message-ID: <20160707205223.GA11753@sigill.intra.peff.net> (raw)
In-Reply-To: <20160707190917.20011-1-kirr@nexedi.com>
On Thu, Jul 07, 2016 at 10:09:17PM +0300, Kirill Smelkov wrote:
> Starting from 6b8fda2d (pack-objects: use bitmaps when packing objects)
> if a repository has bitmap index, pack-objects can nicely speedup
> "Counting objects" graph traversal phase. That however was done only for
> case when resultant pack is sent to stdout, not written into a file.
>
> We can teach pack-objects to use bitmap index for initial object
> counting phase when generating resultant pack file too:
I'm not sure this is a good idea in general. When bitmaps are in use, we
cannot fill out the details in the object-packing list as thoroughly. In
particular:
- we will not compute the same write order (which is based on
traversal order), leading to packs that have less efficient cache
characteristics
- we don't learn about the filename of trees and blobs, which is going
to make the delta step much less efficient. This might be mitigated
by turning on the bitmap name-hash cache; I don't recall how much
detail pack-objects needs on the name (i.e., the full name versus
just the hash).
There may be other subtle things, too. The general idea of tying the
bitmap use to pack_to_stdout is that you _do_ want to use it for
serving fetches and pushes, but for a full on-disk repack via gc, it's
more important to generate a good pack.
Your use case:
> git-backup extracts many packs on repositories restoration. That was my
> initial motivation for the patch.
Seems to be somewhere in between. I'm not sure I understand how you're
invoking pack-objects here, but I wonder if you should be using
"pack-objects --stdout" yourself.
But even if it is the right thing for your use case to be using bitmaps
to generate an on-disk bitmap, I think we should be making sure it
_doesn't_ trigger when doing a normal repack.
-Peff
next prev parent reply other threads:[~2016-07-07 20:52 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-07 19:09 [PATCH] pack-objects: Use reachability bitmap index when generating non-stdout pack too Kirill Smelkov
2016-07-07 20:52 ` Jeff King [this message]
2016-07-08 10:38 ` Kirill Smelkov
2016-07-12 19:08 ` Kirill Smelkov
2016-07-13 8:30 ` Jeff King
2016-07-13 8:26 ` Jeff King
2016-07-13 10:52 ` Kirill Smelkov
2016-07-17 17:06 ` Kirill Smelkov
2016-07-19 11:29 ` Jeff King
2016-07-19 12:14 ` Kirill Smelkov
2016-07-25 18:40 ` Jeff King
2016-07-25 18:53 ` Jeff King
2016-07-27 20:15 ` Kirill Smelkov
2016-07-27 20:40 ` Junio C Hamano
2016-07-28 20:22 ` Kirill Smelkov
2016-07-28 21:18 ` Junio C Hamano
2016-07-29 7:40 ` Kirill Smelkov
2016-07-29 7:46 ` [PATCH 1/2] pack-objects: Teach --use-bitmap-index codepath to respect --local, --honor-pack-keep and --incremental Kirill Smelkov
2016-08-01 18:17 ` Junio C Hamano
2016-08-08 12:37 ` Kirill Smelkov
2016-08-08 13:50 ` Jeff King
2016-08-08 13:51 ` Jeff King
2016-08-08 16:08 ` Junio C Hamano
2016-08-08 19:06 ` Junio C Hamano
2016-08-08 19:09 ` Jeff King
2016-08-08 16:11 ` Junio C Hamano
2016-08-08 18:19 ` Kirill Smelkov
2016-08-08 18:57 ` [PATCH v3] " Kirill Smelkov
2016-08-08 19:26 ` [PATCH 1/2] " Junio C Hamano
2016-08-09 11:21 ` Kirill Smelkov
2016-08-09 11:25 ` [PATCH 1/2 v4] pack-objects: respect --local/--honor-pack-keep/--incremental when bitmap is in use Kirill Smelkov
2016-08-09 16:52 ` [PATCH 1/2] pack-objects: Teach --use-bitmap-index codepath to respect --local, --honor-pack-keep and --incremental Junio C Hamano
2016-08-09 19:29 ` Kirill Smelkov
2016-08-09 19:31 ` [PATCH 1/2 v5] pack-objects: respect --local/--honor-pack-keep/--incremental when bitmap is in use Kirill Smelkov
2016-08-18 17:52 ` Jeff King
2016-09-10 14:57 ` Kirill Smelkov
2016-09-10 15:01 ` [PATCH 1/2 v8] " Kirill Smelkov
2016-09-13 6:23 ` Junio C Hamano
2016-09-13 7:50 ` Kirill Smelkov
2016-09-10 15:05 ` [PATCH] t/perf/run: Don't forget to copy config.mak.autogen & friends to build area Kirill Smelkov
2016-09-12 19:12 ` Junio C Hamano
2016-09-12 19:17 ` Junio C Hamano
2016-09-12 23:10 ` Junio C Hamano
2016-09-13 6:58 ` Kirill Smelkov
2016-09-12 17:33 ` [PATCH 1/2 v5] pack-objects: respect --local/--honor-pack-keep/--incremental when bitmap is in use Junio C Hamano
2016-08-09 19:32 ` [PATCH 2/2 v7] pack-objects: use reachability bitmap index when generating non-stdout pack Kirill Smelkov
2016-08-18 18:06 ` Jeff King
2016-09-10 14:59 ` Kirill Smelkov
2016-09-10 15:01 ` [PATCH 2/2 v8] " Kirill Smelkov
2016-09-12 19:21 ` [PATCH 2/2 v7] " Junio C Hamano
2016-08-09 19:49 ` [PATCH 1/2] pack-objects: Teach --use-bitmap-index codepath to respect --local, --honor-pack-keep and --incremental Junio C Hamano
2016-07-29 7:47 ` [PATCH v4 2/2] pack-objects: Teach it to use reachability bitmap index when generating non-stdout pack too Kirill Smelkov
2016-08-08 13:56 ` Jeff King
2016-08-08 15:40 ` Kirill Smelkov
2016-08-08 18:08 ` Junio C Hamano
2016-08-08 18:13 ` Kirill Smelkov
2016-08-08 18:28 ` Junio C Hamano
2016-08-08 18:58 ` Kirill Smelkov
2016-08-08 18:55 ` [PATCH v5] pack-objects: teach " Kirill Smelkov
2016-08-08 20:53 ` Junio C Hamano
2016-08-09 11:21 ` Kirill Smelkov
2016-08-09 11:26 ` [PATCH 2/2 v6] pack-objects: use reachability bitmap index when generating non-stdout pack Kirill Smelkov
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=20160707205223.GA11753@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=isabelle.vallet@nexedi.com \
--cc=jerome@nexedi.com \
--cc=jm@nexedi.com \
--cc=kazuhiko@nexedi.com \
--cc=kirr@nexedi.com \
--cc=tanoku@gmail.com \
/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).