[
https://issues.apache.org/jira/browse/OAK-9745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joerg Hoh 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 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).
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 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).
--
This message was sent by Atlassian Jira
(v8.20.1#820001)