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

ASF GitHub Bot commented on SCB-651:
------------------------------------

liubao68 commented on a change in pull request #770: [SCB-651] Fixes bug of qps 
rate limit value
URL: 
https://github.com/apache/incubator-servicecomb-java-chassis/pull/770#discussion_r195332212
 
 

 ##########
 File path: 
handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsController.java
 ##########
 @@ -57,6 +60,11 @@ public void setQpsLimit(Integer qpsLimit) {
   public boolean isLimitNewRequest() {
     long newCount = requestCount.incrementAndGet();
     long msNow = System.currentTimeMillis();
+    if (firstCycle) {
 
 Review comment:
   Is this solution the same as set lastRequestCount = 1?
   In concurrent scenario, flow control is not work very precisely as the 
configured rate. In practice, we can not assume a concrete rate and will set 
the limit a bit higher than the expected value. 
   So I think this modification is not quit necessary. 

----------------------------------------------------------------
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


> QPS rate limit bug
> ------------------
>
>                 Key: SCB-651
>                 URL: https://issues.apache.org/jira/browse/SCB-651
>             Project: Apache ServiceComb
>          Issue Type: Bug
>          Components: Java-Chassis
>    Affects Versions: java-chassis-1.0.0-m1
>            Reporter: Sean Li
>            Assignee: Sean Li
>            Priority: Major
>         Attachments: limit value as 1.jpeg, limit value as 2.jpeg
>
>
> When setting _servicecomb.flowcontrol.Provider.qps.limit.[ServiceName]_, the 
> actual number of requests allowed per second are 1 less than the limit value. 
>  
> For example, if I set _flowcontrol.Provider.qps.limit._
>  _business-service-consumer_ as 1, I'll get NO successful request at the very 
> beginning, although I would expect 1 successful request instead of none. 
> Similarly, if I set _flowcontrol.Provider.qps.limit._
>  _business-service-consumer_ as 2, I'll get 1 successful request instead of 
> 2. 
>   
>  -However, if I pause before sending requests, for example add 
> _Thread.sleep(100)_ before invoking the first request, the number of requests 
> allowed per second will be correct this time. (i.e. 1 successful request when 
> limit value is 1, 2 successful requests when limit value is 2, etc.)-
>   



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

Reply via email to