[
https://issues.apache.org/jira/browse/OAK-1760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13979496#comment-13979496
]
Marcel Reutegger commented on OAK-1760:
---------------------------------------
In an offline discussion we came up with the idea of a compromise. To reduce
the risk on the 1.0 branch, we do not apply Jukka's patch there, but only in
trunk. We change the upgrade code in a way that the migration to SegmentMK is
not affected and only perform the special handling proposed by Chetan when
migrating to DocumentMK.
We can later remove this workaround again, once we are confident the changes to
the DocumentNodeBuilder are correct.
Thoughts?
> 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
> Assignee: Jukka Zitting
> 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)