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

Re: svn commit: r1139766 - /subversion/trunk/subversion/svn/main.c

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Tue, 28 Jun 2011 17:43:05 +0100

Stefan Sperling <stsp_at_elego.de> writes:

> When I upgraded a 1.6.x working copy of 2GB size, it took more than one hour.
> I eventually just aborted the upgrade. A checkout completes within
> a couple of minutes.
>
> The repository is remote and the bottleneck should be my 16MB/s downstream
> link (the server is connected to my ISP via the berlin internet exchange
> at 100Mbit/s). So based on what you're saying I should be seeing a much
> better upgrade vs. checkout ratio.
>
> Link to the repository: http://svn.dslinux.org/svn/trunk
>
> svn also seemed to spend more and more time hogging the CPU as the upgrade
> progressed. Note: I have not profiled this, it is all based on what I
> perceived while waiting for the upgrade to complete, and I kept box getting
> more and more impatiant. I'd be willing to repeat this experiment with a
> pr filed build.

Moving from IRC to dev.

We fixed some SQL queries that were not using indices, so upgrade now
scales much better but it is still not as fast as checkout. On my
machine:

1.6 checkout

real 4m49.977s
user 1m41.086s
sys 0m59.368s

1.6-1.7 upgrade

real 16m12.824s
user 6m17.728s
sys 2m4.960s

1.7 checkout

real 7m47.625s
user 1m17.125s
sys 1m15.113s

I can improve the speed further by increasing the SQLite cache size from
2,000 to 200,000 pages:

1.6-1.7 upgrade cache x100

real 9m41.934s
user 5m40.817s
sys 0m34.730s

This cache increase has only a small effect on checkout:

1.7 checkout cache x100
real 7m29.400s
user 1m13.689s
sys 1m17.029s

and that might be down to my connection. The cache's different effect
on upgrade/checkout may be because upgrade is a single, large
transaction while checkout is a series of small transactions.

I suspect that part of the performance problem for upgrade is that it
involves reads and writes to the same disk. Just copying using cp(1)
the pristine directory takes minutes on this machine. By contrast
checkout is mostly just writes. A RAID array to improve upgrade, or a
slower network connection to degrade checkout, would probably alter the
balance.

Running "svn status" on this large (2.4G in 1.6, 2.0G in 1.7) working
copy shows that 1.7 is faster than 1.6 with a cold cache (50s to 80s)
but slower with a hot cache (1.8s to 1.4s).

-- 
Philip
Received on 2011-06-28 18:43:42 CEST

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.