[ 
https://issues.apache.org/jira/browse/OAK-9745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Angela Schreiber updated OAK-9745:
----------------------------------
    Description: 
as discussed with [~jhoh] in private conversations we should look at more 
efficient ways to operate on child node collections such as
- determine if the set of child nodes match a given pattern
- determine the number of child nodes
- get an estimate if the number of child nodes exceeds a given max value
- getting an iterable over all child nodes that match a given pattern

one initial idea would be to introduce a new interface representing the 
child-node collection and adding functionality there instead of creating 
multiple new methods on {{JackrabbitNode}} or {{JackrabbbitSession}}.

the following improvements requests should be handled as part of this epic:
- OAK-9666
- OAK-9667 

The idea is to avoid calling 


  was:
as discussed with [~jhoh] in private conversations we should look at more 
efficient ways to operate on child node collections such as
- determine if the set of child nodes match a given pattern
- determine the number of child nodes
- get an estimate if the number of child nodes exceeds a given max value
- getting an iterator over all child nodes that match a given pattern

one initial idea would be to introduce a new interface representing the 
child-node collection and adding functionality there instead of creating 
multiple new methods on {{JackrabbitNode}} or {{JackrabbbitSession}}.

the following improvements requests should be handled as part of this epic:
- OAK-9666
- OAK-9667 

The reason is to avoid calling one of the {{Node.getNodes()}} methods, as these 
always read *all* children to return them within the NodeIterator, and this can 
be an expensive operation if it has thousands of child nodes. And building the 
complete NodeIterator is not always required (see the above cases, where it's 
not needed).



> Efficient operations on child nodes
> -----------------------------------
>
>                 Key: OAK-9745
>                 URL: https://issues.apache.org/jira/browse/OAK-9745
>             Project: Jackrabbit Oak
>          Issue Type: Epic
>          Components: core, jcr
>            Reporter: Angela Schreiber
>            Priority: Major
>
> as discussed with [~jhoh] in private conversations we should look at more 
> efficient ways to operate on child node collections such as
> - determine if the set of child nodes match a given pattern
> - determine the number of child nodes
> - get an estimate if the number of child nodes exceeds a given max value
> - getting an iterable over all child nodes that match a given pattern
> one initial idea would be to introduce a new interface representing the 
> child-node collection and adding functionality there instead of creating 
> multiple new methods on {{JackrabbitNode}} or {{JackrabbbitSession}}.
> the following improvements requests should be handled as part of this epic:
> - OAK-9666
> - OAK-9667 
> The idea is to avoid calling 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to