Hi,
I'm currently running 3 instances of Subversion behind a Pound load
balancer. So far, I have worked through various issues with high latency
network connections, and other interesting side-effects of having a system
in between the client and mod_dav_svn/mod_authz_svn. However, I still have
an open question regarding how Subversion itself will perform when load
balanced.
Because I am using no session tracking at all for Subversion connections,
multiple requests made by the svn client may be served by different backend
workers. For instance:
# client runs svn co against the load balancer
1: PROPFIND /repo/!svn/vcc/default handled by worker-1
2: PROPFIND /repo/!svn/bln/1513 handled by worker-2
3: PROPFIND /repo/real/checkout/path handled by worker-3, response code 401
(Authz Required)
4: PROPFIND /repo/real/checkout/path handled by worker-3, response code 207
(Multi-Status)
[...]
N: REPORT /repo/!svn/vcc/default handled by worker-2, response code 200 (OK)
# client checkout complete
My question is this: is there any performance reason why a single client
operation should *not* be balanced in the above manner? Is there any state
held within mod_dav_svn that would benefit from having requests such as 1-4
above served by the same worker? Or are each of these PROPFINDs
"independent" such that balancing them across N workers actually improves
performance with no downside?
Regards,
Cory.
Received on Thu Feb 23 21:11:57 2006