From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Nguyen Thai Ngoc Duy <pclouds@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH 6/8] implement metadata cache subsystem
Date: Mon, 6 Aug 2012 16:31:54 -0400 [thread overview]
Message-ID: <20120806203154.GA11977@sigill.intra.peff.net> (raw)
In-Reply-To: <7vk3xe8dc1.fsf@alter.siamese.dyndns.org>
On Sat, Aug 04, 2012 at 03:49:12PM -0700, Junio C Hamano wrote:
> Jeff King <peff@peff.net> writes:
>
> > There are some calculations that git makes repeatedly, even
> > though the results are invariant for a certain input (e.g.,
> > the patch-id of a certain commit). We can make a space/time
> > tradeoff by caching these on disk between runs.
> >
> > Even though these may be immutable for a certain commit, we
> > don't want to directly store the results in the commit
> > objects themselves, for a few reasons:
> >
> > 1. They are not necessarily used by all algorithms, so
> > bloating the commit object might slow down other
> > algorithms.
> >
> > 2. Because they can be calculated from the existing
> > commits, they are redundant with the existing
> > information. Thus they are an implementation detail of
> > our current algorithms, and should not be cast in stone
> > by including them in the commit sha1.
> >
> > 3. They may only be immutable under a certain set of
> > conditions (e.g., which grafts or replace refs we are
> > using). Keeping the storage external means we can
> > invalidate and regenerate the cache whenever those
> > conditions change.
>
> 4. The algorithm used to compute such values could improve over
> time. The same advantage argument as 3 applies to this case.
Yeah, agreed. That commit message is a year old, and was written for an
earlier iteration of the patch which was used for caching commit
generations. There's not really a better algorithm there, but your
comment certainly applies to rename similarities.
-Peff
next prev parent reply other threads:[~2012-08-06 20:32 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-31 14:15 [WIP PATCH] Manual rename correction Nguyen Thai Ngoc Duy
2012-07-31 16:32 ` Junio C Hamano
2012-07-31 19:23 ` Jeff King
2012-07-31 20:20 ` Junio C Hamano
2012-08-01 0:42 ` Jeff King
2012-08-01 6:01 ` Junio C Hamano
2012-08-01 21:54 ` Jeff King
2012-08-01 22:10 ` Junio C Hamano
2012-08-02 22:37 ` Jeff King
2012-08-02 22:51 ` Junio C Hamano
2012-08-02 22:58 ` Jeff King
2012-08-02 5:33 ` Junio C Hamano
2012-08-01 1:10 ` Nguyen Thai Ngoc Duy
2012-08-01 2:01 ` Jeff King
2012-08-01 4:36 ` Nguyen Thai Ngoc Duy
2012-08-01 6:09 ` Junio C Hamano
2012-08-01 6:34 ` Nguyen Thai Ngoc Duy
2012-08-01 21:32 ` Jeff King
2012-08-01 21:27 ` Jeff King
2012-08-02 12:08 ` Nguyen Thai Ngoc Duy
2012-08-02 22:41 ` Jeff King
2012-08-04 17:09 ` [PATCH 0/8] caching rename results Jeff King
2012-08-04 17:10 ` [PATCH 1/8] implement generic key/value map Jeff King
2012-08-04 22:58 ` Junio C Hamano
2012-08-06 20:35 ` Jeff King
2012-08-04 17:10 ` [PATCH 2/8] map: add helper functions for objects as keys Jeff King
2012-08-04 17:11 ` [PATCH 3/8] fast-export: use object to uint32 map instead of "decorate" Jeff King
2012-08-04 17:11 ` [PATCH 4/8] decorate: use "map" for the underlying implementation Jeff King
2012-08-04 17:11 ` [PATCH 5/8] map: implement persistent maps Jeff King
2012-08-04 17:11 ` [PATCH 6/8] implement metadata cache subsystem Jeff King
2012-08-04 22:49 ` Junio C Hamano
2012-08-06 20:31 ` Jeff King [this message]
2012-08-06 20:38 ` Jeff King
2012-08-04 17:12 ` [PATCH 7/8] implement rename cache Jeff King
2012-08-04 17:14 ` [PATCH 8/8] diff: optionally use " Jeff King
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=20120806203154.GA11977@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pclouds@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).