[jira] [Updated] (OAK-2621) Too many reads for child nodes

2017-10-10 Thread Marcel Reutegger (JIRA)

 [ 
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

2015-10-20 Thread Marcel Reutegger (JIRA)

 [ 
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

2015-09-01 Thread Marcel Reutegger (JIRA)

 [ 
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

2015-08-31 Thread Amit Jain (JIRA)

 [ 
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

2015-08-31 Thread Amit Jain (JIRA)

 [ 
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

2015-08-24 Thread Michael Marth (JIRA)

 [ 
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

2015-08-03 Thread Davide Giannella (JIRA)

 [ 
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

2015-06-11 Thread Marcel Reutegger (JIRA)

 [ 
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

2015-06-08 Thread Davide Giannella (JIRA)

 [ 
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

2015-04-29 Thread Michael Marth (JIRA)

 [ 
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

2015-04-29 Thread Michael Marth (JIRA)

 [ 
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

2015-03-19 Thread Michael Marth (JIRA)

 [ 
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

2015-03-19 Thread Michael Marth (JIRA)

 [ 
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

2015-03-19 Thread Michael Marth (JIRA)

 [ 
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)