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

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

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

 ##########
 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:
   Yes, it's same as setting lastRequestCount = 1. I separate the assignment 
clause since this issue only occurs at the beginning (i.e. in the first cycle), 
but the following cycles operate just as expected. 
   I committed this modification because I was expecting the number of requests 
allowed per second should be equal to the qps limit value. For example, 5 
successful requests when setting limit value as 5. 

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