You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Tommaso Teofili (JIRA)" <ji...@apache.org> on 2015/03/11 14:50:38 UTC

[jira] [Comment Edited] (OAK-2602) [Solr] Cost calculation takes time with solr pings even when not fulfilling query

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

Tommaso Teofili edited comment on OAK-2602 at 3/11/15 1:50 PM:
---------------------------------------------------------------

This is due to the fact that currently the {{SolrQueryIndex}} is only returned if the underlying {{SolrServer}} is alive, that is when a _ping_ request returns _0_, then the {{SolrQueryIndex}} is used to evaluate the cost of JCR queries even if then it won't be used (e.g. returning a cost higher than at least one of the other available indexes), behaving just like other existing Oak indexes.
What I see is:
1. if ping requests take time it may be that the Solr instance(s) used are under high load or simply slow in responding for some reason
2. before OAK-2537 there were Solr queries executed for the cost calculation (for the estimation of entries) so maybe some time got wasted there, now that should not cause further performance issues.
3. we may choose to remove the ping calls before returning the {{SolrQueryIndex}} (it also applies to {{SolrIndexEditor}} and {{SolrIndexEditorProvider}}) in {{SolrQueryIndexProvider}} at the cost of eventually start getting errors in query executions if the underlying Solr server is unreachable.


was (Author: teofili):
This is due to the fact that currently the {{SolrQueryIndex}} is only returned if the underlying {{SolrServer}} is alive, that is when a _ping_ request returns _0_, then the {{SolrQueryIndex}} is used to evaluate the cost of JCR queries even if then it won't be used (e.g. returning a cost higher than at least one of the other available indexes), however this is by design.
What I see is:
1. if ping requests take time it may be that the Solr instance(s) used are under high load or simply slow in responding for some reason
2. before OAK-2537 there were Solr queries executed for the cost calculation (for the estimation of entries) so maybe some time got wasted there, now that should not cause further performance issues.
3. we may choose to remove the ping calls before returning the {{SolrQueryIndex}} (it also applies to {{SolrIndexEditor}} and {{SolrIndexEditorProvider}}) in {{SolrQueryIndexProvider}} at the cost of eventually start getting errors in query executions if the underlying Solr server is unreachable.

> [Solr] Cost calculation takes time with solr pings even when not fulfilling query
> ---------------------------------------------------------------------------------
>
>                 Key: OAK-2602
>                 URL: https://issues.apache.org/jira/browse/OAK-2602
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: oak-solr
>    Affects Versions: 1.0.12, 1.1.7
>            Reporter: Amit Jain
>            Assignee: Tommaso Teofili
>             Fix For: 1.1.8, 1.0.13
>
>
> Cost calculation for queries which are fired quite often [1] and which are not going to fulfilled by solr take time due to which the overall cost of the operation is high. 
> [1]
> SELECT * FROM [nt:base] WHERE PROPERTY([rep:members], 'WeakReference') = $uuid 
> SELECT * FROM [nt:base] WHERE [jcr:uuid] = $id



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