Stefan Sperling <s...@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

Reply via email to