jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller (JIRA)" <j...@apache.org>
Subject [jira] [Created] (JCR-3793) vlt: with many child nodes, NodeNameList.restoreOrder is very slow with Oak
Date Tue, 01 Jul 2014 10:04:24 GMT
Thomas Mueller created JCR-3793:
-----------------------------------

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


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