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 "Jukka Zitting (JIRA)" <ji...@apache.org> on 2013/05/30 12:07:21 UTC

[jira] [Commented] (OAK-851) Slowness while traversing a tree

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

Jukka Zitting commented on OAK-851:
-----------------------------------

This is the same underlying issue I'm referring to in http://markmail.org/message/v2ydm5xksd25glm4.

I'm not exactly sure if reconnect() is just a leftover from the time when NodeBuilders couldn't properly track state across rebase/reset operations, or if it's needed for the transient move tracking discussed in http://markmail.org/message/b6dcyae362akyogd.

If former, we should be able to drop the method entirely. If latter, it should be possible to execute the method only after a transient moves has occurred.
                
> Slowness while traversing a tree
> --------------------------------
>
>                 Key: OAK-851
>                 URL: https://issues.apache.org/jira/browse/OAK-851
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>            Reporter: Antonio Sanso
>         Attachments: GetNodesTest.java
>
>
> I have done some simple test on tree traversal and it seems that is really slow (specially compared with the Jackrabbit case).
> My scenario is a bit artificial but not so far away from reality.
> I have a tree with a depth of 100 and I have tried to traverse it from root to leaf.
> This is the performance of oak
> # GetNodesTest                   min     10%     50%     90%     max       N
> Oak-Memory                       980     999    1073    1160    1189      14
> while Jackrabbit gives me 
> # GetNodesTest                   min     10%     50%     90%     max       N
> Jackrabbit                         0       1       1       2      40   10187
> As you see the performance difference is quite substantial.
> I have tried to nail down the source of sloweness but I could not find it. It seems more that the culprit is the huge amount of call to TreeImpl#reconnect.
> Just for completeness I have done a test on accessing directly the leaf rather than traverse and the performance are quite good (still not great though)....
> # GetNodesTest                   min     10%     50%     90%     max       N
> Oak-Memory                        15      16      17      22      53     817

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