Chetan Mehrotra created OAK-1760:
------------------------------------
Summary: 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
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)