[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-12-02 Thread Vikas Saurabh (JIRA)

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

Vikas Saurabh commented on OAK-3494:


Backported into 1.2 at http://svn.apache.org/r1717683

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core, mongomk
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: candidate_oak_1_0, candidate_oak_1_2, performance
> Fix For: 1.3.10, 1.2.9
>
> Attachments: OAK-3494-1.patch, OAK-3494-2.patch, 
> OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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


[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-12-01 Thread Marcel Reutegger (JIRA)

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

Marcel Reutegger commented on OAK-3494:
---

+1

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core, mongomk
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: candidate_oak_1_0, candidate_oak_1_2, performance
> Fix For: 1.3.10
>
> Attachments: OAK-3494-1.patch, OAK-3494-2.patch, 
> OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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


[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-12-01 Thread Vikas Saurabh (JIRA)

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

Vikas Saurabh commented on OAK-3494:


[~mreutegg], I think we should backport this issue as it's useful with journal 
optimization.

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core, mongomk
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: candidate_oak_1_0, candidate_oak_1_2, performance
> Fix For: 1.3.10
>
> Attachments: OAK-3494-1.patch, OAK-3494-2.patch, 
> OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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


[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-10-27 Thread Marcel Reutegger (JIRA)

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

Marcel Reutegger commented on OAK-3494:
---

Thanks a lot Vikas. Patch looks good. I will apply it after the 1.3.9 release.

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core, mongomk
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: performance
> Fix For: 1.3.10
>
> Attachments: OAK-3494-1.patch, OAK-3494-2.patch, 
> OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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


[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-10-08 Thread Stefan Egli (JIRA)

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

Stefan Egli commented on OAK-3494:
--

I was gonna suggest to add more test cases as false-positives would mean wrong 
diff calculation..

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: performance
> Attachments: OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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


[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-10-08 Thread Marcel Reutegger (JIRA)

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

Marcel Reutegger commented on OAK-3494:
---

Yes, we have to extract the parsing. We cannot reuse the dispatch method as is 
in MemoryDiffCache.

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: performance
> Attachments: OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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


[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-10-08 Thread Vikas Saurabh (JIRA)

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

Vikas Saurabh commented on OAK-3494:


I'm not sure if I follow. DocumentNodeStore.dispath() deals with node state and 
sends childNodeState as well while calling back diff.childNodeAdded/Changed. 
Memory diff cache only is dealing with paths and child names as strings. Did 
you mean that we should extract parsing logic out to some *Util and both 
DocumentNodeStore and MemoryDiff should use that?

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: performance
> Attachments: OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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


[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-10-08 Thread Marcel Reutegger (JIRA)

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

Marcel Reutegger commented on OAK-3494:
---

Moved parsing of the diff cache jsop into a static method: 
http://svn.apache.org/r1707509

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: performance
> Attachments: OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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


[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)

2015-10-08 Thread Vikas Saurabh (JIRA)

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

Vikas Saurabh commented on OAK-3494:


Thanks for the refactor Marcel. I'd incorporate the changes (using static 
JsonParser) and a couple of more tests soon.

> MemoryDiffCache should also check parent paths before falling to Loader (or 
> returning null)
> ---
>
> Key: OAK-3494
> URL: https://issues.apache.org/jira/browse/OAK-3494
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Vikas Saurabh
>Assignee: Marcel Reutegger
>  Labels: performance
> Attachments: OAK-3494-TestCase.patch, OAK-3494.patch
>
>
> Each entry in {{MemoryDiffCache}} is keyed with {{(path, fromRev, toRev)}} 
> for the list of modified children at {{path}}. A diff calcualted by 
> {{DocumentNodeStore.diffImpl}} at '/' (passively via loader) or 
> {{JournalEntry.applyTo}} (actively) fill each path for which there are 
> modified children (including the hierarchy)
> But, if an observer calls {{compareWithBaseState}} on a unmodified sub-tree, 
> the observer will still go down to {{diffImpl}} although cached parent entry 
> can be used to answer the query.



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