[
https://issues.apache.org/jira/browse/OAK-1768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14133951#comment-14133951
]
Marcel Reutegger commented on OAK-1768:
---------------------------------------
I think we can get rid of the requirement to update the _lastRevs of documents
that were modified directly by a commit. For those updates the _lastRev can be
calculated with the commit revision on the commit root document. This is either
on the current document or the commit root document. The overhead shouldn't be
too big, since we have to go through the most recent revisions anyway to read
the node.
This means we wouldn't have to track the _lastRevs of documents explicitly
updated by the commit and only need to track _lastRev updates to ancestor
documents that are not touched by the commit. This reduces the size of the
UnsavedModifications significantly for cases where a large tree is added or
removed. Another benefit is that we avoid redundancy. As mentioned already, in
most cases the _lastRev can be calculated based on the changes on the document.
> DocumentNodeBuilder.setChildNode() runs OOM with large tree
> -----------------------------------------------------------
>
> Key: OAK-1768
> URL: https://issues.apache.org/jira/browse/OAK-1768
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: core
> Affects Versions: 1.0
> Reporter: Marcel Reutegger
> Assignee: Marcel Reutegger
> Fix For: 1.1
>
> Attachments:
> 0001-OAK-1768-DocumentNodeBuilder.setChildNode-runs-OOM-w.patch
>
>
> This is a follow up issue for OAK-1760. There we implemented a workaround in
> the upgrade code to prevent the OOME. For the 1.1 release we should implement
> a proper fix in the DocumentNodeStore as suggested by Jukka in OAK-1760.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)