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