[
https://issues.apache.org/jira/browse/OAK-2679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14907746#comment-14907746
]
Joel Richard commented on OAK-2679:
-----------------------------------
[~mmarth], it turned out that it is very hard to implement a cache for the
execution plans because the values and even uncommitted changes have an
influence on which index must be used. On the other hand, the first results of
this optimisation look very promising and almost as good as a cache.
If necessary, it can be improved further by creating a cached index definition
data structure (instead of traversing over NodeStates) which is updated with an
observation listener (as far as I remember that is the most expensive task
right now).
> Query engine: faster cost calculation
> -------------------------------------
>
> Key: OAK-2679
> URL: https://issues.apache.org/jira/browse/OAK-2679
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core, query
> Reporter: Thomas Mueller
> Assignee: Thomas Mueller
> Labels: performance
> Fix For: 1.3.7
>
> Attachments: 0001-OAK-2679-Reduce-execution-plan-overhead_0.2.patch,
> OAK-2679-2.patch, OAK-2679.patch, executionplancache.patch
>
>
> If there are many indexes, preparing a query can take a long time, in
> relation to executing the query.
> The query execution plans can be cached. The cache should be invalidated if
> there are new indexes, or indexes are changed; a simple solution might be to
> use a timeout, and / or a manual cache clean via JMX or so.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)