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

Merge ra-reuse-session branch to trunk or not?

From: Ivan Zhakov <ivan_at_visualsvn.com>
Date: Thu, 17 Sep 2015 17:41:41 +0200

Hi,

I think now is good moment to discuss whether we should merge
ra-reuse-session [1] branch to trunk or not: it's better to merge such
branch in the beginning of release cycle, to have more time to test
and dogfood.

The idea of the branch is pretty simple: add pool of RA sessions in
svn_client_ctx_t and use it when we're going to open new RA session in
libsvn_client. RA sessions are returned back to RA pool *only* by
explicit svn_client__ra_session_release() call. RA sessions *will not
be reused* if they are destroyed by APR pool cleanup.

Goals of the branch were:
1. Avoid opening many TCP connections and improve merge performance of WAN
2. Avoid opening many TCP connections and improve performance in some
non-typical cases like working copy with many svn:externals (issue
3763 [2]) or subtree svn:mergeinfo.
3. Avoid passing RA session around and writing custom code with
reparent RA session to interesting and back in libsvn_client.
4. Improve performance of GUI clients that perform several
svn_client_* operation using the same svn_client_ctx_t.

That branch is complete and ready for merging, but I'm still not sure
whether we should merge it or not.

Pros:
- It reduce number of TCP connection to something like one or two,
instead of 10-20 in some cases.
- It should theoretically improve performance oven WAN
- It allows us write cleaner since we don't manage RA sessions. See
patch in [4] as an example how code could change.
- Fixes issue 3763

Cons:
- In makes behavior less stable. RA session pool doesn't reuse
sessions that was unused for some time to avoid timeout issues
- There is the chance that we will try to reuse 'broken' RA session
due the bug and operation will fail

[1] https://svn.apache.org/repos/asf/subversion/branches/reuse-ra-session
[2] http://subversion.tigris.org/issues/show_bug.cgi?id=3763
[3] http://svn.haxx.se/dev/archive-2013-06/0164.shtml
[4] http://svn.haxx.se/dev/archive-2015-02/0054.shtml

-- 
Ivan Zhakov
Received on 2015-09-17 17:42:15 CEST

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