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

Julian Reschke edited comment on JCRVLT-789 at 3/10/25 1:20 PM:
----------------------------------------------------------------

So the idea is to have an alternate API on the filter that returns the set of 
child node names for which the check of "isAncestor" will return true (or is 
likely to...).

If we had this, we could avoid iterating through the child nodes, and just 
inspect these specific child node names.

Such as:

{noformat}
  List<String> childNamesOfInterest = 
filter.getChildNamesBelowParent(node.getPath());
{noformat}

where "node" is the path for which we currently get all child nodes. We could 
then just iterate though these child nodes, instead of iterating through all of 
of them.

Extra points for using 

 
https://developer.adobe.com/experience-manager/reference-materials/spec/jsr170/javadocs/jcr-2.0/javax/jcr/Node.html#getNodes(java.lang.String)




was (Author: reschke):
So the idea is to have an alternate API on the filter that returns the set of 
child node names for which the check of "isAncestor" will return true.

If we had this, we could avoid iterating through the child nodes, and just 
inspect these specific child node names.

Such as:

{noformat}
  List<String> childNamesOfInterest = 
filter.getChildNamesBelowParent(node.getPath());
{noformat}

where "node" is the path for which we currently get all child nodes.

Extra points for using 

 
https://developer.adobe.com/experience-manager/reference-materials/spec/jsr170/javadocs/jcr-2.0/javax/jcr/Node.html#getNodes(java.lang.String)



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