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 "Michael Dürig (JIRA)" <ji...@apache.org> on 2015/03/26 11:43:53 UTC

[jira] [Commented] (OAK-2669) Use Consolidated diff for local changes with persistent cache to avoid calculating diff again

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

Michael Dürig commented on OAK-2669:
------------------------------------

I'd prefer if we could avoid passing the {{ContentChangeInfo}} instances through all the calls. Maybe OAK-2685 opens new approaches here? Otherwise we should aim to make it more general so other implementations could plugin whatever need comes up for them in the future. 

OTOH, let's first evaluate this to see whether it helps addressing the current performance problems. Once we have a clearer picture on that we can take up the design discussions again. 

> Use Consolidated diff for local changes with persistent cache to avoid calculating diff again
> ---------------------------------------------------------------------------------------------
>
>                 Key: OAK-2669
>                 URL: https://issues.apache.org/jira/browse/OAK-2669
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: mongomk
>            Reporter: Chetan Mehrotra
>             Fix For: 1.3.0
>
>         Attachments: OAK-2669-A.patch
>
>
> Currently the diff logic in DocumentMK makes use of DiffCache which has an in memory implementation and a Mongo based implementation. Given that we need to have a fast observation support for local changes it would be better to make use of persistent cache. After discussing with [~mreutegg] following changes need to be done in current logic
> # Have the Commit#applyChanges push the commit diff to persistent cache with current commit revision as key
> # In compare pull out the diff from persistent cache and if present use that. Note that this diff is for complete tree compared to current JSOP diff used which is only per node level. So need to change the way diff is pushed back to NodeStateDiff
> Above change should avoid hitting mongo all together for determining the diff. Only extra work performed in diff calculation would be determining the node state view for the base revision. Later we can think of also include node state base revision as part of diff so as to avoid this extra work all together and rely on node state from persistent cache for that work also
> See also http://markmail.org/thread/bzmwcp7k4wmtw6od



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)