[
https://issues.apache.org/jira/browse/SOLR-5986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14131669#comment-14131669
]
Rich Cariens edited comment on SOLR-5986 at 9/12/14 3:43 PM:
-------------------------------------------------------------
How does the group feel about adding interruption hooks into the
ExitableTermsEnum.checkAndThrow() method? Something like:
{noformat}
private void checkAndThrow() {
if (QueryTimeout.shouldExit()) {
throw new ExitingReaderException("The request took too long to iterate
over terms.");
} else if (Thread.interrupted()) {
throw new ExitingReaderException("Interrupted while iterating over
terms.");
}
}
{noformat}
Seems like this would expose another handy hook into the query life-cycle.
was (Author: cariensrs):
How does the group feel about adding interruption hooks into the
ExitableTermsEnum.checkAndThrow() method? Something like:
-snip-
private void checkAndThrow() {
if (QueryTimeout.shouldExit()) {
throw new ExitingReaderException("The request took too long to iterate
over terms.");
} else if (Thread.interrupted()) {
throw new ExitingReaderException("Interrupted while iterating over
terms.");
}
}
-snip-
Seems like this would expose another handy hook into the query life-cycle.
> 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
>
>
> 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]