Chetan Mehrotra created OAK-2669:
------------------------------------

             Summary: Use persistent cache for local commit diff in 
DocumentNodeStore
                 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


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)

Reply via email to