[ 
https://issues.apache.org/jira/browse/OAK-4888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15595987#comment-15595987
 ] 

Alexander Klimetschek commented on OAK-4888:
--------------------------------------------

> I think we need more data (examples)
> say ordering by an unindexed property

See OAK-4887. This is a real issue we have seen and on par with a completely 
missing index if the amount of nodes the index covers is large (i.e. almost the 
entire repository).

> if you run a query only once, then it's better to not create an index

Right. I was only thinking of queries folks built into their applications. For 
admin/developer style one off queries I think the "option(traversal ok)" (which 
a query UI could offer as a checkbox) should be fine.

> Long term, I would prefer if there is no config option at all (as that's yet 
> another knob that increases the surface area, and can be misused...). I was 
> hoping that we can make "fail" the default at some point, and then we can 
> even remove the (undocumented) system property.

Agreed.

> Warn or fail queries above a configurable cost value
> ----------------------------------------------------
>
>                 Key: OAK-4888
>                 URL: https://issues.apache.org/jira/browse/OAK-4888
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: query
>            Reporter: Alexander Klimetschek
>            Assignee: Thomas Mueller
>              Labels: docs-impacting
>             Fix For: 1.5.13
>
>
> *Problem:* It's easy to run into performance problems with queries that are 
> not backed by an index or miss the right one. Developers writing these 
> queries typically do not have the real large production data, and thus don't 
> see that a query would scale badly, and would not see any traversal warnings, 
> as these only happen with a large number of results.
> *Proposal:* Oak's query engine already calculates a cost estimate to make a 
> decision which index to use, or even if there is any at all. This cost 
> estimate could be used to find out if a query is not supported by an index or 
> with one that is not suitable enough (e.g. ordering by property that is not 
> indexed)
> If a query is above a certain cost value, a big warning could be put out or 
> even the query could be made to fail (maybe a per query option, that you 
> might want to have to "fail" by default to ensure people are not overlooking 
> the problem). The cost limit should be configurable, as it might depend on 
> the hardware power.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to