Joel Richard created OAK-3154:
---------------------------------
Summary: Improve SimpleNodeAggregator performance with a NodeState
cache
Key: OAK-3154
URL: https://issues.apache.org/jira/browse/OAK-3154
Project: Jackrabbit Oak
Issue Type: Improvement
Components: query
Affects Versions: 1.3.3
Reporter: Joel Richard
I have profiled a query where 16% of the query fetching time is spent inside of
SimpleNodeAggregator.isNodeType. In my case, a lot of nodes which are read have
overlapping paths.
Because the nodes seem to be iterated alphabetically, it would be possible to
cache the previous NodeState chain in an array and reuse as much as possible if
the previous and current path overlap. This would significantly reduce the
query fetching time in cases where a lot of paths are similar. Since the
NodeState cache array can be reused for the whole query execution, the possible
overhead of it should be negligible.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)