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

HTTPv2 comparison testing

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Thu, 06 May 2010 23:40:48 -0400

I was trying to think of a decent way to automate some testing of the
HTTPv2 improvements. I reasoned that 'svnsync' would provide a decent
way to test the "push" improvements (syncing local -> remote) as well
as the primary "pull" improvement (hitting URLs directly rather than
enjoying a VCC discovery PROPFIND dance).

So I hopped onto the CollabNet corporate VPN, installed a trunk
Subversion Apache server on a machine inside CollabNet's firewall
there in California, and then made a repository 'svn' which had the
first 100 revisions of our old Subversion repository. I wrote a CGI
script on that box which would delete a second repository (if it
existed), recreate it, and enable revprop-changes on it.

Then on my local box, I wrote a script which did a similar repos
delete/recreate step on a local repos, hit the CGI script on the
remote server to delete/recreate the second remote repos (the first is
my baseline data), sync from the first remote repos to the my local
repos, and then sync from my local repos back to the second remote
repos (while timing both of those syncs).

Here are the timings:

Neon remote->local Serf remote->local
V2 V1 V2 V1
48.14 60.92 29.65 27.06
48.63 62.02 29.83 28.65
48.50 60.75 30.09 29.2
51.45 59.28 31.86 30.23
49.18 60.74 80.96% 30.36 28.79 105.46%
Neon local->remote Serf local->remote
V2 V1 V2 V1
529.86 542.49 461.00 597.18
522.55 572.29 461.79 602.27
527.19 559.07 463.61 611.26
524.08 559.31 466.23 613.41
525.92 558.29 94.20% 463.16 606.03 76.42%

I must point out that this wasn't a completely controlled test. My home
network and ISP link aren't guaranteed to be operating at any particular
rate at any particular time.

Now some commentary about the cases.

Neon remote->local

   I expected decent improvement here, as libsvn_ra_neon -- while not
   upgraded to fully support HTTPv2 -- did get the don't-do-as-many-
   PROPFINDs changes. I didn't think I'd see this much of a change,

Neon local->remote

   I expected very little improvement here because libsvn_ra_neon didn't
   get any of the commit HTTPv2 improvements. I'm guessing the little
   bit of improvement we see here was the result of fewer VCC discoveries.

Serf remote->local

   I didn't expect much by way of improvements here because libsvn_ra_serf
   is already pretty optimized in the PROPFIND space. But ... uh... it got
    worse? I've got no explanation for this.

Serf local->remote

   Next to Neon remote->local, this is where I would have expected
   second-best results. Instead, it looks like things went better than
   anticipated. Can commits in Subversion 1.7 really be that much faster
   with libsvn_ra_serf?

C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

Received on 2010-05-07 05:41:37 CEST

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