You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Chetan Mehrotra (JIRA)" <ji...@apache.org> on 2016/05/27 04:34:14 UTC

[jira] [Created] (OAK-4403) Diff traversal in persisted branch commit traversing to unrelated paths

Chetan Mehrotra created OAK-4403:
------------------------------------

             Summary: 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: Improvement
          Components: documentmk
            Reporter: Chetan Mehrotra
             Fix For: 1.6


 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.

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)