Chetan Mehrotra commented on OAK-4403:

Setting a fix version to ensure that we look into this issue sooner for 1.6

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

Reply via email to