[jira] [Commented] (OAK-3494) MemoryDiffCache should also check parent paths before falling to Loader (or returning null)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)