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

Re: svn client fails with Berkeley DB error Cannot allocate memor y - repository wedges

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: 2004-06-01 15:59:57 CEST

"Martin J. Evans" <martin.evans@easysoft.com> writes:

> > Locks cannot be released until the scripts ends,
> > and the script only ends when a subprocess is done.
> > I can imagine that 4000 is a limmit way to small on
> > a medium sized repository.
>
> Fair enough but at most I would expect a read lock per ls and I
> don't see why that cannot be released when the ls completes. Since
> the depth of recursion I get to is only 9 I don't have any more than
> 9 ls's going at once.

Locks aren't taken out per-Subversion-operation. Their granularity is
more tightly bound to Berkeley DB implementation details, something
like per-row or per-page or something. That said, these locks don't
outlive a Berkeley DB transaction, and there is usually a many-to-1
relationship between Berkeley DB transactions and Subversion
operations.

I said all that to say that an 'ls' shouldn't eat *that* many locks.

You can see how many locks a particular operation consumes (roughly)
by doing this:

   svnadmin recover /path/to/repos
   (do the operation)
   db_stat -ch /path/to/repos/db | grep Maximum

For example, I'm seeing about 31 locks used for a recursive 'ls' of
the entire Subversion repository's /trunk directory.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Jun 1 16:01:19 2004

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