Class AsyncRequestFutureImpl<CResult>

java.lang.Object
org.apache.hadoop.hbase.client.AsyncRequestFutureImpl<CResult>
All Implemented Interfaces:
AsyncRequestFuture

@Private class AsyncRequestFutureImpl<CResult> extends Object implements AsyncRequestFuture
The context, and return value, for a single submit/submitAll call. Note on how this class (one AP submit) works. Initially, all requests are split into groups by server; request is sent to each server in parallel; the RPC calls are not async so a thread per server is used. Every time some actions fail, regions/locations might have changed, so we re-group them by server and region again and send these groups in parallel too. The result, in case of retries, is a "tree" of threads, with parent exiting after scheduling children. This is why lots of code doesn't require any synchronization.