On Thu, Mar 10, 2011 at 6:24 AM, John Beranek <j...@redux.org.uk> wrote: > On 10/03/11 06:34, Ivan Zhakov wrote: >> On Thu, Mar 10, 2011 at 01:23, John Beranek <j...@redux.org.uk> wrote: >>> On 09/03/2011 20:17, Ivan Zhakov wrote: >>>> On Tue, Mar 8, 2011 at 22:07, Greg Stein <gst...@gmail.com> wrote: >>>>> On Tue, Mar 8, 2011 at 12:34, Ivan Zhakov <i...@visualsvn.com> wrote: >>>>>> ... >>>>>> It seems I found reason why ra_serf is slower than ra_neon. ra_serf >>>>>> sends CHECKOUT request for _each_ folder and file that being imported, >>>>>> while ra_neon perform it only for root directory. Maybe DAV experts >>>>>> can answer which behavior is correct: should WebDAV client CHECKOUT >>>>>> each resource being modified or it's fine to CHECKOUT only the root of >>>>>> commit operation? >>>>> >>>>> There is no other WebDAV server to talk to, besides our own. That is >>>>> one of the primary rationales behind the HTTPv2 effort: recognizing >>>>> reality, rather than living in an theoretical world. >>>>> >>>>> Thus, if Neon's approach works with our server, then ra_serf can go >>>>> ahead and use that approach, too. >>>>> >>>> Hi Greg, >>>> >>>> My investigations was wrong: actually ra_neon doesn't send CHECKOUT >>>> request only for sub-directories and file of directories being added >>>> in the same commit. We still have to CHECKOUT directories when using >>>> HTTPv1 to provide baseline. >>>> >>>> Anyway I've implemented ra_neon's approach in r1079967. >>>> >>>> John, >>>> >>>> Could you please provide timings of 'svn import' with updated >>>> Subversion trunk and Serf trunk? >>> >>> Apparently fixed! >>> >>> To a remote 1.6.15 server: >>> ra_serf: 18 seconds >>> ra_neon: 16 seconds >>> >> I see that ra_serf still little bit slower than ra_neon. > > OK, so I: > > * Changed my benchmark took to allow the test to be reported N times, > and moved to microsecond timers. > * Set up a fresh repository on a 1.6.15 server, with no post-commit > triggers. > > So, with 10 iterations: > ra_neon: 16.01 > ra_serf: 15.94
Having only tangentially followed this thread, I've got a couple of questions: * Do the current subversion+serf fixes solve the the large checkout time problem people have been seeing on trunk? * What other scenarios should we be timing/testing? John, you've been a great help in identifying and testing this. Any chance you could run similar timing comparisons on other Subversion operations and report the results? :) -Hyrum