[ 
https://issues.apache.org/jira/browse/HBASE-29301?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Charles Connell updated HBASE-29301:
------------------------------------
    Description: 
My contribution in HBASE-28770 contains a bug that is exposed under certain 
conditions. When using AsyncAggregationClient (not AggregationClient), the 
client signals that it can accept partial results. On the server side, this 
triggers AggregateImplementation to check quotas prior to each cell that it 
scans, and return as soon as a throttle is violated, even if the result is not 
complete. The client will sleep and then make a request for the next chunk of 
results.

However, when AggregateImplementation violates a throttle before finding any 
results at all, it returns a result to the client that says the results are 
empty and complete, so the client should not request any more. Under high load, 
this can happen and lead to the client receiving incomplete results that the 
server says are complete.

  was:
My contribution in HBASE-28770 contains a bug that is exposed under certain 
conditions. When using AsyncAggregationClient (not AggregationClient), the 
client signals that it can accept partial results. On the server side, this 
triggers AggregateImplementation to check quotas prior to each cell that it 
scans, and return as soon as a throttle is violated, even if the result is not 
complete. The client will sleep and then make a request for the next chunk of 
results.

However, when AggregateImplementation violated a throttle before finding any 
results at all, it returned a result to the client that said the results were 
empty and complete, so the client should not request any more. Under high load, 
this can happen and lead to the client receiving incomplete results that the 
server says are complete.


> AggregateImplementation returns incomplete results to AsyncAggregationClient 
> when under high load
> -------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-29301
>                 URL: https://issues.apache.org/jira/browse/HBASE-29301
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Charles Connell
>            Assignee: Charles Connell
>            Priority: Major
>
> My contribution in HBASE-28770 contains a bug that is exposed under certain 
> conditions. When using AsyncAggregationClient (not AggregationClient), the 
> client signals that it can accept partial results. On the server side, this 
> triggers AggregateImplementation to check quotas prior to each cell that it 
> scans, and return as soon as a throttle is violated, even if the result is 
> not complete. The client will sleep and then make a request for the next 
> chunk of results.
> However, when AggregateImplementation violates a throttle before finding any 
> results at all, it returns a result to the client that says the results are 
> empty and complete, so the client should not request any more. Under high 
> load, this can happen and lead to the client receiving incomplete results 
> that the server says are complete.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to