From: bdowning@lavos.net (Brian Downing)
To: Nicolas Pitre <nico@cam.org>
Cc: Martin Koegler <mkoegler@auto.tuwien.ac.at>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
git@vger.kernel.org
Subject: Re: [PATCH] pack-objects: only throw away data during memory pressure
Date: Tue, 12 Feb 2008 11:14:03 -0600 [thread overview]
Message-ID: <20080212171403.GG27535@lavos.net> (raw)
In-Reply-To: <alpine.LFD.1.00.0802120910440.2732@xanadu.home>
On Tue, Feb 12, 2008 at 09:26:25AM -0500, Nicolas Pitre wrote:
> I think your use case has merits, but the previous behavior had
> semantics problems. We always had constant window size with dynamic
> memory usage, and now we have constant window size with bounded memory
> usage.
>
> If what you want is really to have a dynamic window size using a
> constant memory usage then it needs a different and coherent way to be
> specified.
Sometimes I want a bounded window size with bounded memory usage; i.e. a
maximum of 50 entries OR 256 megs worth. That's for everyday repacking
of my troublesome repository; without the window going down to less than
10 or so for the large files, it still takes way too long, but doing the
whole thing at 10 makes for very poor packing.
So that gives four options:
1. No memory limit, constant entry depth. Original Git behavior.
2. The above with an additional memory-based depth limit. This is
what was added with --memory-limit.
3. Constant entry depth with a memory-usage limit. This is what the
proposed patch does.
4. Dynamic entry depth, with a memory-based limit. This is I believe
what you are proposing above, and what I emulate by setting
--window=$bignum --window-memory=x.
I'm willing to try and make all of those work. (Though frankly I don't
care much about #3; setting the window entry size to something "large
enough" seems a simple enough work-around for me, and it prevents what's
probably some truly ridiculous behavior if you have a gigantic number of
tiny, say, tree objects. Having a cap on window depth stops that case
from taking a truly inordinate amount of time.)
However, I can't figure out what sensible command-line and/or config
parameters would be for the cases above. Any ideas?
-bcd
next prev parent reply other threads:[~2008-02-12 17:14 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-11 7:26 [PATCH] pack-objects: only throw away data during memory pressure Martin Koegler
2008-02-11 15:20 ` Johannes Schindelin
2008-02-11 16:00 ` Nicolas Pitre
2008-02-11 16:08 ` Johannes Schindelin
2008-02-11 16:00 ` Nicolas Pitre
2008-02-12 8:22 ` Brian Downing
2008-02-12 14:26 ` Nicolas Pitre
2008-02-12 17:14 ` Brian Downing [this message]
2008-02-12 17:17 ` Brian Downing
2008-02-12 17:28 ` Brian Downing
2008-02-12 17:39 ` Nicolas Pitre
2008-02-13 1:48 ` Nicolas Pitre
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=20080212171403.GG27535@lavos.net \
--to=bdowning@lavos.net \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=mkoegler@auto.tuwien.ac.at \
--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 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).