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

Chetan Mehrotra commented on OAK-4403:
--------------------------------------

Yes as test fails on trunk also if "oak.disableJournalDiff" is set to true. So 
bug still exists in diffImpl logic. Given that persisted branch should not be 
very old journal should be sufficient to handle the usecase. 

However we should still address the bug in fallback diff logic

> 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)

Reply via email to