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

Jiangjie Qin commented on KAFKA-6028:
-------------------------------------

[~junrao] We were thinking that the server will mute the channel for throttle 
time after return the response with a throttle time. In that case, even if the 
clients sends the next request immediately, the server won't read it from the 
socket until throttle time has passed. So a bad client won't overwhelm the 
server. The only downside is that the receive socket buffer will be used if a 
bad client does that. I have a KIP wiki ready and will post it shortly.

If we shrink the metric window the quota is essentially violated, right?

> Improve the quota throttle communication.
> -----------------------------------------
>
>                 Key: KAFKA-6028
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6028
>             Project: Kafka
>          Issue Type: Improvement
>          Components: clients, core
>    Affects Versions: 1.0.0
>            Reporter: Jiangjie Qin
>            Assignee: Jiangjie Qin
>             Fix For: 1.1.0
>
>
> Currently if a client is throttled duet to quota violation, the broker will 
> only send back a response to the clients after the throttle time has passed. 
> In this case, the clients don't know how long the response will be throttled 
> and might hit request timeout before the response is returned. As a result 
> the clients will retry sending a request and results a even longer throttle 
> time.
> The above scenario could happen when a large clients group sending records to 
> the brokers. We saw this when a MapReduce job pushes data to the Kafka 
> cluster.
> To improve this, the broker can return the response with throttle time 
> immediately after processing the requests. After that, the broker will mute 
> the channel for this client. A correct client implementation should back off 
> for that long before sending the next request. If the client ignored the 
> throttle time and send the next request immediately, the channel will be 
> muted and the request won't be processed until the throttle time has passed.
> A KIP will follow with more details.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to