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

ASF GitHub Bot commented on KAFKA-7177:
---------------------------------------

lindong28 closed pull request #5384: KAFKA-7177: Update 2.0 documentation to 
reflect changed quota behaviors by KIP-219
URL: https://github.com/apache/kafka/pull/5384
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/docs/design.html b/docs/design.html
index 69d1941effd..bdc7e637ea9 100644
--- a/docs/design.html
+++ b/docs/design.html
@@ -610,10 +610,12 @@ <h4><a id="design_quotasenforcement" 
href="#design_quotasenforcement">Enforcemen
         having a fixed cluster wide bandwidth per client because that would 
require a mechanism to share client quota usage among all the brokers. This can 
be harder to get right than the quota implementation itself!
     </p>
     <p>
-        How does a broker react when it detects a quota violation? In our 
solution, the broker does not return an error rather it attempts to slow down a 
client exceeding its quota.
-        It computes the amount of delay needed to bring a guilty client under 
its quota and delays the response for that time. This approach keeps the quota 
violation transparent to clients
-        (outside of client-side metrics). This also keeps them from having to 
implement any special backoff and retry behavior which can get tricky. In fact, 
bad client behavior (retry without backoff)
-        can exacerbate the very problem quotas are trying to solve.
+        How does a broker react when it detects a quota violation? In our 
solution, the broker first computes the amount of delay needed to bring the 
violating client under its quota
+        and returns a response with the delay immediately. In case of a fetch 
request, the response will not contain any data. Then, the broker mutes the 
channel to the client,
+        not to process requests from the client anymore, until the delay is 
over. Upon receiving a response with a non-zero delay duration, the Kafka 
client will also refrain from
+        sending further requests to the broker during the delay. Therefore, 
requests from a throttled client are effectively blocked from both sides.
+        Even with older client implementations that do not respect the delay 
response from the broker, the back pressure applied by the broker via muting 
its socket channel
+        can still handle the throttling of badly behaving clients. Those 
clients who sent further requests to the throttled channel will receive 
responses only after the delay is over.
     </p>
     <p>
     Byte-rate and thread utilization are measured over multiple small windows 
(e.g. 30 windows of 1 second each) in order to detect and correct quota 
violations quickly. Typically, having large measurement windows


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Update 2.0 documentation to reflect changed quota behaviors by KIP-219 
> -----------------------------------------------------------------------
>
>                 Key: KAFKA-7177
>                 URL: https://issues.apache.org/jira/browse/KAFKA-7177
>             Project: Kafka
>          Issue Type: Task
>          Components: documentation
>            Reporter: Jon Lee
>            Assignee: Jon Lee
>            Priority: Major
>             Fix For: 2.1.0
>
>
> KIP-219 changed the way quota violation is communicated between clients and 
> brokers. Documentation should be updated accordingly. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to