[ 
https://issues.apache.org/jira/browse/SVN-4667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15795158#comment-15795158
 ] 

Julian Foad commented on SVN-4667:
----------------------------------

Attached "repro-test-2.patch", a patch which adds the reproduction recipe I'm 
using so far, in the form of a test case. It generates a repository with N=300 
(for example) branches, each with a unique file changed, and merged to trunk 
such that trunk gets N files with subtree mergeinfo, each referring to up to N 
branches (half of N, on average).

I can then run test merges, with debugging prints in them, to view the memory 
increase:

{code:none}
# this runs a merge from trunk to branch,
# with WC directory 'A' switched to a branch:
$ (cd 
obj-dir/subversion/tests/cmdline/svn-test-work/working_copies/mergeinfo_tests-14/
 && \
  svn revert -q -R A/ && \
  svn merge -q ^/A A)
DBG: merge.c:12587: using 8+3 MB; increase +2 MB
DBG: merge.c:12418: using 8+25 MB; increase +21 MB
DBG: merge.c:12455: using 8+34 MB; increase +9 MB
DBG: merge.c:9378: using 8+37 MB; increase +3 MB
DBG: merge.c:9378: using 8+43 MB; increase +6 MB
{code}

I don't know how representative this repro-test is of the customer's use case, 
but it provides a starting point.

> Merge uses large amount of memory
> ---------------------------------
>
>                 Key: SVN-4667
>                 URL: https://issues.apache.org/jira/browse/SVN-4667
>             Project: Subversion
>          Issue Type: Bug
>    Affects Versions: 1.9.4
>            Reporter: Julian Foad
>         Attachments: repro-test-1.patch, repro-test-2.patch
>
>
> A WANdisco customer found that a merge will not complete with 4 GB RAM and 
> will complete with 5 GB RAM available.
> The branches involved have subtree mergeinfo on over 3500 files, each 
> referring to about 350 branches on average, and just over 1 revision range on 
> average per mergeinfo line. Average path length is under 100 bytes.
> This seems already far too much memory usage for the size of the data set, 
> and the size of the data set is growing.
> This issue is about reducing the amount of RAM Subversion uses given this 
> data set. Another way to approach the problem is to reduce the amount of 
> subtree mergeinfo by changing the work flow practices; that approach is also 
> being investigated but is not in the scope of this issue, except to note that 
> the tools "svn-mergeinfo-normalizer" and "svn-clean-mergeinfo.pl" both also 
> fail to execute in the available RAM.
> (WANdisco's internal issue id: SVNB-1952.)
> (For reference, past issues about merge using too much memory include 
> SVN-3393 "Merge consuming too much memory" and SVN-3854 "Out of memory during 
> merge with many Tree Conflicts".)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to