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

Mete Atamel commented on OAK-535:
---------------------------------

To provide more context why this is the case, when a branch is merged into the 
trunk, MergeCommand does a 3-way merge (borrowed from MicroKernelImpl) among 
branch root, current trunk head, and the common ancestor of trunk and branch. 
So it needs to fetch nodes at those mentioned paths in order to do comparisons 
but the problem is it's not obvious what the path and depth of that fetch 
should be. So as a start, I went with "/" as path and unlimited depth to fetch 
everything but that obviously is not going to work for lots of nodes. After 
some testing, it looked to me that we should be able to limit the depth to the 
max depth of the branch and that works for the branch/merge tests but fails in 
other scenarios like quickstart. We might also be able to limit the path of the 
getNodes calls (instead of using "/") but haven't had the chance to investigate 
that yet.
                
> MergeCommand reads complete tree into memory
> --------------------------------------------
>
>                 Key: OAK-535
>                 URL: https://issues.apache.org/jira/browse/OAK-535
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: mongomk
>    Affects Versions: 0.5
>            Reporter: Marcel Reutegger
>
> Merging commits to a branch back to head in MongoMK calls MergeCommand, which 
> reads the complete tree into memory. The more content is in the repository, 
> the longer it takes to store even a simple update as a property change.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to