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

Michael Dürig commented on OAK-1760:
------------------------------------

I share Chetan's concern re. the code path. Also we'd need to add comments here 
as it is not clear from the immediate context why this code is necessary. I 
fear that otherwise that code will get removed again at some point in the 
future.

> RepositoryUpgrade leads to one large commit with DocumentNodeStore causing OOM
> ------------------------------------------------------------------------------
>
>                 Key: OAK-1760
>                 URL: https://issues.apache.org/jira/browse/OAK-1760
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: mongomk, upgrade
>    Affects Versions: 0.20
>            Reporter: Chetan Mehrotra
>         Attachments: 
> 0001-OAK-1760-RepositoryUpgrade-leads-to-one-large-commit.patch, 
> 0001-OAK-1760-RepositoryUpgrade-leads-to-one-large-commit.patch, 
> OAK-1760.patch
>
>
> RepositoryUpgrade logic currently creates when migrating content from JR2 to 
> Oak currently creates a one large commit. This causes issue with 
> DocumentNodeStore as all the commit state is maintained in memory in 
> Commit#operations variable which leads to OOM when source repository content 
> is large.
> On Analyzing the heap dump it can be seen that 
> {{o.a.j.o.plugins.document.Commit#operations}} map contains large number of 
> UpdateOp entries. These entries are created due to the diff being performed 
> in {{o.a.j.o.plugins.document.DocumentNodeStoreBranch#persist}} which 
> traverse down the whole tree (source being JR2 tree) and captures the diff as 
> UpdateOp. As commit does not get applied till whole diff is complete the in 
> memory state is proportional to repository size 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to