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

Reply via email to