[ https://issues.apache.org/jira/browse/JCRVLT-789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17935733#comment-17935733 ]
Julian Reschke commented on JCRVLT-789: --------------------------------------- Summarizing: AggregateImpl now avoids iterating over all sibling nodes when not needed. This was achieved by checking all applicable filter sets: * if the filter's root is a child of the current path: in which case we only need to inspect the child node name which is the first part of the root path relative to the current path) * if the current node's path is not an ancestor of the filter's root path: in which case we do not have to check the children If all filter sets belong to these categories, we know which children to iterate over. > AggregateImpl might be able to avoid iterating over sibling nodes > ----------------------------------------------------------------- > > Key: JCRVLT-789 > URL: https://issues.apache.org/jira/browse/JCRVLT-789 > Project: Jackrabbit FileVault > Issue Type: Improvement > Components: vlt > Reporter: Julian Reschke > Assignee: Julian Reschke > Priority: Major > Fix For: 3.8.4 > > > See > [https://github.com/apache/jackrabbit-filevault/blob/367ffb423d84993c5bb0eb0186f810a58b6227be/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/AggregateImpl.java#L696] > > This code currently iterates unconditionally over child nodes (which is a > problem for large collections). We might be able to avoid that by checking > the filters before descending. > I tried a quick hack, and that made tests fail (which is good). > Will continue with a test case first. -- This message was sent by Atlassian Jira (v8.20.10#820010)