You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Antonio Sanso (JIRA)" <ji...@apache.org> on 2013/05/23 14:25:20 UTC
[jira] [Created] (OAK-839) Optimization in the Node#getNodes
Antonio Sanso created OAK-839:
---------------------------------
Summary: Optimization in the Node#getNodes
Key: OAK-839
URL: https://issues.apache.org/jira/browse/OAK-839
Project: Jackrabbit Oak
Issue Type: Improvement
Components: jcr
Reporter: Antonio Sanso
I have done some simple test with Node#getNodes and it seems that is really slow (specially compared with the Jackrabbit case).
My test is really simple. (see as well attached GetNodesTest).
I create a node with 10000 children and do
NodeIterator iterator = reader.getNode("/a").getNodes();
The performance test shows a huge regression if compared with Jackrabbit
* Jackrabbit
Apache Jackrabbit Oak 0.9-SNAPSHOT
# ReadStatusTestSingleACL min 10% 50% 90% max N
Jackrabbit 0 0 0 1 10 33592
* Oak
Apache Jackrabbit Oak 0.9-SNAPSHOT
# ReadStatusTestSingleACL min 10% 50% 90% max N
Oak-Memory 123 125 128 144 168 115
Me and [~tmueller] were able to find the cause of the sloweness.
It seems that the o.a.j.oak.jcr.delegate.NodeDelegate and o.a.j.oak.jcr.NodeImpl are calling getChildrenCount that seems to be an expensive operation (and not really needed in this case).
Patch to follow
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira