threads / discuss / 37807

Re: Anomaly with the new code - Re: git-svn performance

Subject: Re: Anomaly with the new code - Re: git-svn performance

## tl;dr

4 messages between Oct 25, 2014 and Oct 27, 2014.

replies: 3people: 2as markdown or json

Hin-Tak Leung· Oct 25, 2014, 05:29 UTC · lore

------------------------------ On Sat, Oct 25, 2014 00:34 BST Eric Wong wrote:

Show 17 quoted lines
>Hin-Tak Leung <htl10@users.sourceforge.net> wrote:
>> I keep tabs of a particular svn repository over many years
>> and run "git svn fetch --all" every few days. So that's the old clone.
>> Since this discussion started, I made a new one with git 2.1.0 patched
>> with the first two patches below, a couple of weeks ago. And I ran
>> 'git svn fetch --all' on both every few days since.
>> 
>> I have added a few more patches, so the whole list is the 6
>> below against 2.1.0. The latest fetch is really strange - the fetch against
>> the new clone took almost twice as long and uses almost twice
>> as much memory, vs against the old. 17 min, 800 MB vs 10 min 400MB.
>> Details below. Maybe this is a performance issue about how the clones
>> were made?
>
>Memory usage seems to grow with the amount of revisions fetched,
>see below.  And higher memory means slower fork() on Linux systems.
>
but this is fetching the same number of revisions, and same revisions to keep the two clone in sync. So the issue is about how distant history is stored and used/searched, i think.
Show 12 quoted lines
>> 0001-git-svn-only-look-at-the-new-parts-of-svn-mergeinfo.patch    
>> 0002-git-svn-only-look-at-the-root-path-for-svn-mergeinfo.patch   
>> 0003-git-svn-reduce-check_cherry_pick-cache-overhead.patch        
>> 0004-git-svn-cache-only-mergeinfo-revisions.patch                 
>
>> 0006-git-svn-clear-global-SVN-pool-between-get_log-invoca.patch   
>
>0006 is insufficient and incompatible with older SVN.
>I pushed "git-svn: reload RA every log-window-size"
>(commit dfa72fdb96befbd790f623bb2909a347176753c2) instead
>which saves much more memory:
>
it is fetching against the new clone taking twice as long and consuming twice as much memory.
Show 10 quoted lines
>http://mid.gmane.org/20141024225352.GB31716@dcvr.yhbt.net
>
>But there still seems to be some slow growth with many revisions
>which is not mergeinfo-related.
>
>> 0007-git-svn-remove-mergeinfo-rev-caching.patch 
>
>I think it is also safe to remove the _rev_list memoization since
>it uses a lot of memory.  The remaining caches should be tiny
>(but useful, I think).
Eric Wong· Oct 25, 2014, 05:51 UTC · re: Hin-Tak Leung · lore
Hin-Tak Leung <htl10@users.sourceforge.net> wrote:
Show 11 quoted lines
> On Sat, Oct 25, 2014 00:34 BST Eric Wong wrote:
> >Hin-Tak Leung <htl10@users.sourceforge.net> wrote:
> >> 0006-git-svn-clear-global-SVN-pool-between-get_log-invoca.patch   
> >
> >0006 is insufficient and incompatible with older SVN.
> >I pushed "git-svn: reload RA every log-window-size"
> >(commit dfa72fdb96befbd790f623bb2909a347176753c2) instead
> >which saves much more memory:
> >
> it is fetching against the new clone taking twice as long and
> consuming twice as much memory.

Ugh, I've only tested "git-svn: reload RA every log-window-size" with file:// repos so far, so it looks like I'll need to setup remote repos on my test system to test.

Eric Wong· Oct 27, 2014, 06:38 UTC · re: Hin-Tak Leung · lore
Hin-Tak Leung <htl10@users.sourceforge.net> wrote:
Show 8 quoted lines
> On Sat, Oct 25, 2014 00:34 BST Eric Wong wrote:
> >0006 is insufficient and incompatible with older SVN.
> >I pushed "git-svn: reload RA every log-window-size"
> >(commit dfa72fdb96befbd790f623bb2909a347176753c2) instead
> >which saves much more memory:
>
> it is fetching against the new clone taking twice as long and
> consuming twice as much memory.

Which SVN version are you using? I'm cloning (currently on r373xx) https://svn.r-project.org/R using --stdlayout and unable to see memory growth of the git-svn Perl process beyond 40M (on a 32-bit system).

I also tried http:// (not https), svn+ssh:// on my local (64-bit) system and did not see memory growth, either:

	http://mid.gmane.org/20141027014033.GA4189@dcvr.yhbt.net
I'm using svn 1.6.17 on Debian stable in all cases.
Eric Wong· Oct 27, 2014, 16:56 UTC · re: Eric Wong · lore
Eric Wong <normalperson@yhbt.net> wrote:
> Which SVN version are you using?  I'm cloning (currently on r373xx)
> https://svn.r-project.org/R using --stdlayout and
> unable to see memory growth of the git-svn Perl process beyond 40M
> (on a 32-bit system).

git-svn hit 45M and took 11:44 to finish. My ping times to svn.r-project.org is around 150ms (I'm running this from a server in Fremont, California). I'll keep the repo around and periodically fetch to see how it runs.

← back to recent threads