[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: r11556 causes enormous fsfs memory use

From: Peter N. Lundblad <peter_at_famlundblad.se>
Date: 2004-10-26 23:08:16 CEST

On Mon, 25 Oct 2004, Eric Gillespie wrote:

> Importing NetBSD src (822 MB, 89482 files, 10902 directories)
> into an fsfs repository with svnserve 1.1.1, svnserve grows to
> use 124 MB. The user who initially reported this to me saw it
> bump into a 128 MB resource limit.
>
> I tracked this down to r11556. Undo that from a 1.1.1 working
> copy, and the memory usage decreases back to 1.1.0 levels which,
> while bad[1], were at least acceptable.
>
Thank you for tracking it that far. I'm pretty sure I found the reason for
this.

It apperas that apr_hash_set() allocates memory for each call that isn't a
delete, even if there is an entry in the table already. We are using
apr_hash_set to get and put back a translation handle for each translation
(we don't want to do the translation while holding a global lock). So
there we have an allocation per translation, which, ofcourse is
unacceptable.

I think we can avoid this by another level of indirection:-) Storing a
pointer to a pointer to the first entry in the hash table instead of the
pointer itself. This wouldn't be removed, but just modified.

I don't think I can work on this until the weekend.

Thanks for an interesting evening, Erik, with importing four linux kernels
a few times:-)
Regards,
//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Oct 26 22:52:34 2004

This is an archived mail posted to the Subversion Dev mailing list.