You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Varun Thacker (JIRA)" <ji...@apache.org> on 2018/06/02 21:07:00 UTC
[jira] [Commented] (SOLR-12405) Add a quality of service type
filter for request load management and request throttling.
[ https://issues.apache.org/jira/browse/SOLR-12405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16499187#comment-16499187 ]
Varun Thacker commented on SOLR-12405:
--------------------------------------
Just to experiment a little to understand how this works better. So I changed the qos filter to be
{code:java}
@Override
public void init(FilterConfig filterConfig) {
super.init(filterConfig);
_origMaxRequests = 0;
super.setMaxRequests(_origMaxRequests);
super.setSuspendMs(60000);
super.setWaitMs(50);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String source = req.getHeader(QoSParams.REQUEST_SOURCE);
if (req.getServletPath() != null && req.getServletPath().contains("/update")) {
log.info("Blocking update");
super.doFilter(req, response, chain);
} else {
chain.doFilter(req, response);
}
}{code}
Never does an update get processed as expected. At the 1 minute mark the client would get back a 503
{code:java}
[master] ~/apache-work/lucene-solr/solr$ time curl http://127.0.0.1:8983/solr/techproducts/update?commit=true -H 'Content-type:application/json' -d '
[
{"id" : "1"}
]'
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 503 Service Unavailable</title>
</head>
<body><h2>HTTP ERROR 503</h2>
<p>Problem accessing /solr/techproducts/update. Reason:
<pre> Service Unavailable</pre></p>
</body>
</html>
real 1m0.130s
user 0m0.007s
sys 0m0.007s{code}
> Add a quality of service type filter for request load management and request throttling.
> ----------------------------------------------------------------------------------------
>
> Key: SOLR-12405
> URL: https://issues.apache.org/jira/browse/SOLR-12405
> Project: Solr
> Issue Type: New Feature
> Security Level: Public(Default Security Level. Issues are Public)
> Reporter: Mark Miller
> Priority: Major
> Attachments: SOLR-12405.patch
>
>
> Trying to manage resource usage just with thread / connection pool limits is a losing strategy ( especially without using Continuations and making scalability vs performance tradeoffs) if you cannot manage requests.
> A QOSFilter type servlet filter with give us some base functionality we want:
> Ability to limit number of concurrent requests.
> Ability to queue requests without holding a thread per request.
> Ability to drop requests over a certain queue size.
> Ability to prioritize requests on the queue.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org