From: Robin Rosenberg <robin.rosenberg.lists@dewire.com>
To: "Shawn O. Pearce" <spearce@spearce.org>
Cc: git@vger.kernel.org
Subject: Re: [JGIT PATCH 3/4] Cap the number of open files in the WindowCache
Date: Wed, 18 Mar 2009 01:09:39 +0100 [thread overview]
Message-ID: <200903180109.40074.robin.rosenberg.lists@dewire.com> (raw)
In-Reply-To: <20090317230803.GA23521@spearce.org>
onsdag 18 mars 2009 00:08:03 skrev "Shawn O. Pearce" <spearce@spearce.org>:
> Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:
> > tisdag 17 mars 2009 02:16:09 skrev "Shawn O. Pearce" <spearce@spearce.org>:
> >
> > > If we detect a file open failure while opening a pack we halve
> > > the number of permitted open files and try again, [...]
> >
> > The output of getMessage isn't that simple to interpret. Here it is filename+" (Too many files open)",
> > and on other platforms it is probably something else. This goes for the message part of most exceptions
> > thrown from platform specific code like file i/o socket i/o etc. The type of exception is a FileNotFoundException,
> > btw.
> >
> > I wonder whether your code works on any platform.
>
> Arrrgh.
>
> OK. Maybe scrap that part of the patch then?
Yes, I think so, inless you want to try something as ugly as getMessage().toLower().indexof("(too many")? Not
sure what it looks like in Windows or OSX. We know from the JDK source it's filename + "(" + reason +")" and
the problem here is the reason part.
> Its too bad they don't have a specific type of exception for this,
FileNotFoundException is a little more specific. Maybe in combinatikon with a file.exists() and file.canRead test...
(thinking loud now)
> nor do they have a way to hold onto file descriptors under a type
> like a SoftReference where the runtime can whack them if you have
> too many.
The problem is that it's not connected to file descriptors but to memory. Doing a GC on filenotfoundexception
(here) could help here if one uses soft reference, or one could prune the cache manually. The parameter
could also be a
>
> I guess that's why Hadoop HBase just tells you to up your fd ulimit
> to 32767. :-)
Yeah, with gigabytes of memory that might not consume too much resources anyway.
-- robin
next prev parent reply other threads:[~2009-03-18 0:11 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 1:16 [JGIT PATCH 0/4] Avoid using 1280 file descriptors Shawn O. Pearce
2009-03-17 1:16 ` [JGIT PATCH 1/4] Refactor WindowCache.reconfigure() to take a configuration object Shawn O. Pearce
2009-03-17 1:16 ` [JGIT PATCH 2/4] Update EGit plugin to use WindowCacheConfig Shawn O. Pearce
2009-03-17 1:16 ` [JGIT PATCH 3/4] Cap the number of open files in the WindowCache Shawn O. Pearce
2009-03-17 1:16 ` [JGIT PATCH 4/4] Teach WindowCacheConfig to read core.packedgit* settings from config Shawn O. Pearce
2009-03-17 22:59 ` [JGIT PATCH 3/4] Cap the number of open files in the WindowCache Robin Rosenberg
2009-03-17 23:08 ` Shawn O. Pearce
2009-03-18 0:09 ` Robin Rosenberg [this message]
2009-03-18 1:36 ` [JGIT PATCH 3/4 v2] " Shawn O. Pearce
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=200903180109.40074.robin.rosenberg.lists@dewire.com \
--to=robin.rosenberg.lists@dewire.com \
--cc=git@vger.kernel.org \
--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).