[ https://issues.apache.org/jira/browse/OAK-4403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15647492#comment-15647492 ]
Chetan Mehrotra commented on OAK-4403: -------------------------------------- Makes sense. Lets open a new issue > Diff traversal in persisted branch commit traversing to unrelated paths > ----------------------------------------------------------------------- > > Key: OAK-4403 > URL: https://issues.apache.org/jira/browse/OAK-4403 > Project: Jackrabbit Oak > Issue Type: Bug > Components: documentmk > Reporter: Chetan Mehrotra > Assignee: Marcel Reutegger > Fix For: 1.6, 1.5.13 > > > With DocumentNodeStore when a commit involves a persisted branch the diff > logic traverses to those paths which are not affected by the current commit. > For e.g. in following flow > # Commit C1 (base rev R1) - Starts and modifies paths under /content. The > number of changes done exceed the update.limit and hence the in memory branch > transitions to Persisted state > # Before C1 commits another commit C2 starts and modified paths under /etc > and /var > # C2 commits (before C1). Head revision R2 > # C1 commits and perform the merge. Revision moves to R3 > Now at #4 the merge would trigger a diff which should normally traverse and > perform diff for those paths which are modified by C1. However currently it > seems to also perform diff on all those paths which have been modified after > R1 and R3. In doing so it would traverse the complete sub trees of such > paths. Note that functionally the end result is same just that too many extra > nodes are read which would put load on system > If the number of changes are reduced such that persisted branch is not > created then diff only reads those parts which are modified by the current > commit. -- This message was sent by Atlassian JIRA (v6.3.4#6332)