jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tobias Bocanegra (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-3793) vlt: with many child nodes, NodeNameList.restoreOrder is very slow with Oak
Date Thu, 03 Jul 2014 17:55:33 GMT

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

Tobias Bocanegra commented on JCR-3793:
---------------------------------------

bq. My patch still improves performance about 20-fold (for Oak) and 10-fold (for Jackrabbit
2.x), so I think it's worth it.
In vlt? even after jukka's improvements?

> vlt: with many child nodes, NodeNameList.restoreOrder is very slow with Oak
> ---------------------------------------------------------------------------
>
>                 Key: JCR-3793
>                 URL: https://issues.apache.org/jira/browse/JCR-3793
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>         Attachments: JCR-3793.patch, ReorderTest.java
>
>
> The method org.apache.jackrabbit.vault.fs.api.NodeNameList.restoreOrder re-orders orderable
child nodes by using Node.orderBefore. This is very slow if there are many child nodes, specially
with Oak (minutes for 10'000 nodes, while only about 1 second for Jackrabbit 2.x).
> [~tripod], I wonder if a possible solution is to first check whether re-ordering is needed?
For example using:
> {noformat}
>     boolean isOrdered(ArrayList<String> names, Node parent)
>             throws RepositoryException {
>         NodeIterator it1 = parent.getNodes();
>         for (Iterator<String> it2 = names.iterator(); it2.hasNext();) {
>             if (!it1.hasNext() || !it1.nextNode().getName().equals(it2.next())) {
>                 return false;
>             }
>         }
>         return !it1.hasNext();
>     }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message