[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger updated OAK-2621: -- Fix Version/s: 1.8 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.8 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger updated OAK-2621: -- Fix Version/s: (was: 1.3.9) > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger updated OAK-2621: -- Fix Version/s: (was: 1.3.7) 1.3.8 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.3.8 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Amit Jain updated OAK-2621: --- Fix Version/s: (was: 1.3.6) 1.3.7 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.3.7 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Amit Jain updated OAK-2621: --- Fix Version/s: (was: 1.3.7) 1.3.6 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.3.6 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Marth updated OAK-2621: --- Fix Version/s: (was: 1.3.5) 1.3.7 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.3.7 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Davide Giannella updated OAK-2621: -- Fix Version/s: (was: 1.3.4) 1.3.5 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.3.5 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger updated OAK-2621: -- Fix Version/s: (was: 1.3.1) 1.3.4 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.3.4 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Davide Giannella updated OAK-2621: -- Fix Version/s: (was: 1.3.0) 1.3.1 Bulk move to 1.3.1 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.3.1 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Marth updated OAK-2621: --- Component/s: mongomk > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Fix For: 1.3.0 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Marth updated OAK-2621: --- Labels: performance (was: ) > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mongomk >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Labels: performance > Fix For: 1.3.0 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Marth updated OAK-2621: --- Fix Version/s: (was: 1.1.9) 1.3.0 > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Fix For: 1.3.0 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Marth updated OAK-2621: --- Priority: Major (was: Minor) > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement >Affects Versions: 1.0 >Reporter: Marcel Reutegger > Fix For: 1.3.0 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-2621) Too many reads for child nodes
[ https://issues.apache.org/jira/browse/OAK-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Marth updated OAK-2621: --- Issue Type: Improvement (was: Bug) > Too many reads for child nodes > -- > > Key: OAK-2621 > URL: https://issues.apache.org/jira/browse/OAK-2621 > Project: Jackrabbit Oak > Issue Type: Improvement >Affects Versions: 1.0 >Reporter: Marcel Reutegger >Priority: Minor > Fix For: 1.1.9 > > > The DocumentNodeStore issues a lot of reads when sibling nodes are deleted, > which are also index with a property index. > The following calls will become a hotspot: > {noformat} > at > org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.query(MongoDocumentStore.java:406) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildDocs(DocumentNodeStore.java:846) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readChildren(DocumentNodeStore.java:788) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getChildren(DocumentNodeStore.java:753) > at > org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeCount(DocumentNodeState.java:194) > at > org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.getChildNodeCount(ModifiedNodeState.java:198) > at > org.apache.jackrabbit.oak.plugins.memory.MutableNodeState.getChildNodeCount(MutableNodeState.java:265) > at > org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNodeCount(MemoryNodeBuilder.java:293) > at > org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy.prune(ContentMirrorStoreStrategy.java:456) > {noformat} > I think the code triggering this issue is in > {{ModifiedNodeState.getChildNodeCount()}}. It keeps track of already deleted > children and requests {{max += deleted}}. The actual {{max}} is always 1 as > requested from {{ContentMirrorStoreStrategy.prune()}}, but as more nodes get > deleted, the higher {{max}} gets passed to > {{DocumentNodeState.getChildNodeCount()}}. The DocumentNodeStore then checks > if it has the children in the cache, only to find out the cache entry has too > few entries and it needs to fetch one more. > It would be best to have a minimum number of child nodes to fetch from > MongoDB in this case. E.g. when NodeState.getChildNodeEntries() is called, > the DocumentNodeState fetches 100 children. -- This message was sent by Atlassian JIRA (v6.3.4#6332)