[
https://issues.apache.org/jira/browse/OAK-1760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13979789#comment-13979789
]
Jukka Zitting commented on OAK-1760:
------------------------------------
There's a minor bug in the fix. If a "jcr:system" node exists somewhere else
than at the root of the workspace, then the upgrade would end up skipping that
subtree. It would also merge the /home subtree with Oak's default content
instead of overriding those with content from the source repository.
Revision 1589748 fixes those issues. I merged the fix to the 1.0 branch in
revision 1589751.
> 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
> Fix For: 1.0
>
> Attachments:
> 0001-OAK-1760-RepositoryUpgrade-leads-to-one-large-commit.patch,
> 0001-OAK-1760-RepositoryUpgrade-leads-to-one-large-commit.patch,
> OAK-1760-1_0-branch.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)