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