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

Re: mod_dav_svn and multiple apache processes

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Wed, 02 Dec 2009 09:29:29 -0500

Viacheslav Zholudev wrote:
> Hi,
>
> Please help me out in understanding internals of BDB-based subversion.
>
> When committing files to my repository over HTTP, I noticed that Apache uses multiple processes to serve my commit. Here I've got a couple of questions:
> 1) Shouldn't Apache use only one process per SVN transaction? I thought it was the case.

Not necessarily. Subversion was designed to allow for piecemeal transaction
build-up and commit. Apache was designed to give its admins the ability to
limit the number of requests and such that any given child process handles.

> 2) How does mod_dav_svn distribute commit work among processes?

You give mod_dav_svn more credit than it deserves. Subversion clients don't
realize that they are talking to more than one Apache process, and generally
*aren't* talking to more than one Apache process at any given time. All the
client knows is "I'm talking to the server". All that mod_dav_svn knows is
"Apache has asked me to handle this request". It's Apache itself that
decides which child process to hand the request off to, and it does so
without any particularly interesting heuristics. There's nothing like a
load balancer or anything of that sort at work here.

> 3) May mod_dav_svn uses different svn_fs_t objects for writing the same file to the SVN's backend?
> 4) How mod_dav_svn decides when to open and close svn_fs_t* object

A given mod_dav_svn process should only use one svn_fs_t per request,
because if I'm not mistaken, mod_dav_svn caches the svn_repos_t and svn_fs_t
objects that it opens in Apache's connection pool (a block of memory whose
lifetime matches an Apache connection). Those objects are closed when the
connection pool is destroyed (that is, when Apache closes the connection).

> 5) Where I can read more about mod_dav_svn (except the code)

Heh. Um ... Er ... what documentation?

-- 
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2426347
Please start new threads on the <dev_at_subversion.apache.org> mailing list.
To subscribe to the new list, send an empty e-mail to <dev-subscribe_at_subversion.apache.org>.
Received on 2009-12-02 15:30:03 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.