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

Reply via email to