[
https://issues.apache.org/jira/browse/SOLR-5986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14136295#comment-14136295
]
Anshum Gupta edited comment on SOLR-5986 at 9/16/14 9:43 PM:
-------------------------------------------------------------
https://reviews.apache.org/r/25658/
Changed the design to have an abstract/base QueryTimeout class and
implementations that use local var and ThreadLocal for Lucene/Solr.
Changed the Lucene test to use the non-ThreadLocal implementation and
SolrIndexSearcher uses the ThreadLocal implementation of QueryTimeout.
Also, had to change a few tests to increase the timeAllowed on existing
grouping related tests.
Until now, the timeAllowed was only used while collecting the docs and so a
q=*:* grouping query passed fine. With terms enumeration using the same
timeAllowed param, requests time out more often than before this change (as
expected).
was (Author: anshumg):
https://reviews.apache.org/r/25658/
Changed the design to have an abstract/base QueryTimeout class and
implementations that use local var and ThreadLocal for Lucene/Solr.
Changed the Lucene test to use the non-ThreadLocal implementation and
SolrIndexSearcher uses the ThreadLocal implementation of QueryTimeout.
> Don't allow runaway queries from harming Solr cluster health or search
> performance
> ----------------------------------------------------------------------------------
>
> Key: SOLR-5986
> URL: https://issues.apache.org/jira/browse/SOLR-5986
> Project: Solr
> Issue Type: Improvement
> Components: search
> Reporter: Steve Davids
> Assignee: Anshum Gupta
> Priority: Critical
> Fix For: 4.10
>
> Attachments: SOLR-5986.patch, SOLR-5986.patch, SOLR-5986.patch,
> SOLR-5986.patch, SOLR-5986.patch, SOLR-5986.patch, SOLR-5986.patch,
> SOLR-5986.patch, SOLR-5986.patch
>
>
> The intent of this ticket is to have all distributed search requests stop
> wasting CPU cycles on requests that have already timed out or are so
> complicated that they won't be able to execute. We have come across a case
> where a nasty wildcard query within a proximity clause was causing the
> cluster to enumerate terms for hours even though the query timeout was set to
> minutes. This caused a noticeable slowdown within the system which made us
> restart the replicas that happened to service that one request, the worst
> case scenario are users with a relatively low zk timeout value will have
> nodes start dropping from the cluster due to long GC pauses.
> [~amccurry] Built a mechanism into Apache Blur to help with the issue in
> BLUR-142 (see commit comment for code, though look at the latest code on the
> trunk for newer bug fixes).
> Solr should be able to either prevent these problematic queries from running
> by some heuristic (possibly estimated size of heap usage) or be able to
> execute a thread interrupt on all query threads once the time threshold is
> met. This issue mirrors what others have discussed on the mailing list:
> http://mail-archives.apache.org/mod_mbox/lucene-solr-user/200903.mbox/%[email protected]%3E
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]