From users-return-3540-daniel=haxx.se@subversion.apache.org Wed Jul 7 02:17:09 2010 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on giant.haxx.se X-Spam-Level: X-Spam-Status: No, score=-1.5 required=3.0 tests=BAYES_00,T_RP_MATCHES_RCVD autolearn=ham version=3.3.1 Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by giant.haxx.se (8.14.3/8.14.3/Debian-9.1) with SMTP id o670H8tE026706 for ; Wed, 7 Jul 2010 02:17:09 +0200 Received: (qmail 3386 invoked by uid 500); 7 Jul 2010 00:16:58 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 3377 invoked by uid 99); 7 Jul 2010 00:16:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Jul 2010 00:16:58 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS Received-SPF: pass (nike.apache.org: local policy) Received: from [82.173.186.92] (HELO vip.vsoft.nl) (82.173.186.92) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Jul 2010 00:16:50 +0000 Received: from vip.alh.net.qqn.nl (localhost [127.0.0.1]) by mx0.qqn.nl (Postfix) with ESMTP id A8251731C1; Wed, 7 Jul 2010 02:16:29 +0200 (CEST) X-Virus-Scanned: by amavisd-new/Clam Antivirus at mx0.qqn.nl Received: from mx0.qqn.nl ([127.0.0.1]) by vip.alh.net.qqn.nl (vip.alh.net.qqn.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id dUm48mDYhQzC; Wed, 7 Jul 2010 02:16:15 +0200 (CEST) Received: from Quad (quad.alh.net.qqn.nl [192.168.0.11]) by mx0.qqn.nl (Postfix) with ESMTP id 6CFB973194; Wed, 7 Jul 2010 02:16:15 +0200 (CEST) From: "Bert Huijben" To: "'Eric Peers'" , "'Daniel Shahaf'" Cc: References: <4C33733B.4030507@missinglinktools.com> <4C339613.9040304@missinglinktools.com> In-Reply-To: <4C339613.9040304@missinglinktools.com> Subject: RE: Performance of svn+ssh vs. file for multiple files Date: Wed, 7 Jul 2010 02:16:14 +0200 Message-ID: <007d01cb1d69$9c96c810$d5c45830$@nl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AcsdTGpmg18qjUWdSCqwTLE657E33AAHCoDA Content-Language: nl X-Virus-Checked: Checked by ClamAV on apache.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.3.5 (giant.haxx.se [80.67.6.50]); Wed, 07 Jul 2010 02:17:09 +0200 (CEST) X-Friend: Nope > -----Original Message----- > From: Eric Peers [mailto:eric@missinglinktools.com] > Sent: dinsdag 6 juli 2010 22:46 > To: Daniel Shahaf > Cc: users@subversion.apache.org > Subject: Re: Performance of svn+ssh vs. file for multiple files > > Good suggestion Daniel. While this does markedly improve performance, > it > does so at the expense of changing the underlying protocol. > Unfortunately, I'm not at liberty to change the underlying protocol - I > have customers that define the protocol, I don't. So my "program" needs > to access their repos using their protocols. > > But the results: > ssh port forwarding to an active svnserve takes about 2.5s. > pure svnserve takes roughly 2s > > svnserve -d --listen-port 8000 > ssh epeers@localhost -L 3690:localhost:8000 > ...then run my svn update commands... > > --eric > > On 07/06/2010 12:52 PM, Daniel Shahaf wrote: > > Have you tried using SSH port forwarding instead of svn+ssh://? > > > > Daniel > > (perhaps one of the other devs will address the points you made; I'm > > myself not familiar with that part of the code) > > > > Eric Peers wrote on Tue, 6 Jul 2010 at 21:17 -0000: > > > >> Howdy, > >> > >> I've got a program that needs to checkout specific files at specific > versions. > >> In this particular case a branch does not make sense. I have found > that the > >> performance of svn+ssh in this case is very bad. > >> > >> I run the rough equivalent of: > >> svn update -r 2 file1 file2 file3 file4 file5 > >> svn update -r 3 file6 file7 file8 file9 file10 > >> > >> overall I have about 100 such files, and 2 svn update calls. I've > accomplished > >> this with an xargs frontend to svn so as to not overrun the cmdline. What you see is that updating a simple tree takes approximately the same amount of time: most of the time is spend on creating the connection and exchanging information on what to update. But in case of a recursive update below a root, all information is transferred at once. The 'svn update TARGET1 TARGET2.... TARGETn' performs a separate tree update for every individual selected target. To speed things up it would be interesting to know why you really need to update the specific files here, or can you switch to updating per directory? Do you need to skip a specific file? If you update specific files there are some kinds of changes you will never receive (e.g. New files or property changes on the directory), and you won't get a completely single revision working copy. (Which would actually give the best svn update performance as the client can just tell the repository: I have this tree at revision N; do you have changes for me?) Bert