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