Class RawAsyncTableImpl
- All Implemented Interfaces:
AsyncTable<AdvancedScanResultConsumer>
CompletableFuture will
be finished inside the rpc framework thread, which means that the callbacks registered to the
CompletableFuture will also be executed inside the rpc framework thread. So users who use
this class should not try to do time consuming tasks in the callbacks.- Since:
- 2.0.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final classprivate final classprivate static interfaceprivate final classprivate static interfaceprivate static interfaceNested classes/interfaces inherited from interface org.apache.hadoop.hbase.client.AsyncTable
AsyncTable.CheckAndMutateBuilder, AsyncTable.CheckAndMutateWithFilterBuilder, AsyncTable.CoprocessorCallback<R>, AsyncTable.CoprocessorServiceBuilder<S,R> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AsyncConnectionImplprivate final intprivate final longprivate static final org.slf4j.Loggerprivate final intprivate final longprivate final longprivate final longprivate final longprivate final org.apache.hbase.thirdparty.io.netty.util.Timerprivate final longprivate final longprivate final intprivate final TableNameprivate final long -
Constructor Summary
ConstructorsConstructorDescriptionRawAsyncTableImpl(AsyncConnectionImpl conn, org.apache.hbase.thirdparty.io.netty.util.Timer retryTimer, AsyncTableBuilderBase<?> builder) -
Method Summary
Modifier and TypeMethodDescriptionAppends values to one or more columns within a single row.<T> List<CompletableFuture<T>>Method that does a batch call on Deletes, Gets, Puts, Increments, Appends and RowMutations.private <T> List<CompletableFuture<T>>private static <REQ,PREQ, PRESP, RESP>
CompletableFuture<RESP>call(HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, REQ req, RawAsyncTableImpl.Converter<PREQ, byte[], REQ> reqConvert, RawAsyncTableImpl.RpcCall<PRESP, PREQ> rpcCall, RawAsyncTableImpl.Converter<RESP, HBaseRpcController, PRESP> respConverter) checkAndMutate(byte[] row, byte[] family) Atomically checks if a row/family/qualifier value matches the expected value.checkAndMutate(byte[] row, Filter filter) Atomically checks if a row matches the specified filter.checkAndMutate(List<CheckAndMutate> checkAndMutates) Batch version of checkAndMutate.checkAndMutate(CheckAndMutate checkAndMutate) checkAndMutate that atomically checks if a row matches the specified condition.<S,R> CompletableFuture<R> coprocessorService(Function<com.google.protobuf.RpcChannel, S> stubMaker, ServiceCaller<S, R> callable, byte[] row) Execute the given coprocessor call on the region which contains the givenrow.<S,R> AsyncTable.CoprocessorServiceBuilder<S, R> coprocessorService(Function<com.google.protobuf.RpcChannel, S> stubMaker, ServiceCaller<S, R> callable, AsyncTable.CoprocessorCallback<R> callback) Execute a coprocessor call on the regions which are covered by a range.private <S,R> CompletableFuture<R> coprocessorService(Function<com.google.protobuf.RpcChannel, S> stubMaker, ServiceCaller<S, R> callable, RegionInfo region, byte[] row) Deletes the specified cells/rows in bulk.Deletes the specified cells/row.Extracts certain cells from the given rows, in batch.Extracts certain cells from a given row.private CompletableFuture<Result>org.apache.hadoop.conf.ConfigurationReturns theConfigurationobject used by this instance.Gets theTableDescriptorfor this table.getName()Gets the fully qualified table name instance of this table.longgetOperationTimeout(TimeUnit unit) Get timeout of each operation in Table instance.longgetReadRpcTimeout(TimeUnit unit) Get timeout of each rpc read request in this Table instance.Gets theAsyncTableRegionLocatorfor this table.Get the map of request attributeslonggetRpcTimeout(TimeUnit unit) Get timeout of each rpc request in this Table instance.getScanner(Scan scan) Returns a scanner on the current table as specified by theScanobject.longgetScanTimeout(TimeUnit unit) Get the timeout of a single operation in a scan.longgetWriteRpcTimeout(TimeUnit unit) Get timeout of each rpc write request in this Table instance.Increments one or more columns within a single row.private booleanlocateFinished(RegionInfo region, byte[] endKey, boolean endKeyInclusive) private static <REQ,RESP> CompletableFuture<RESP> mutate(HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, REQ req, RawAsyncTableImpl.Converter<org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest, byte[], REQ> reqConvert, RawAsyncTableImpl.Converter<RESP, HBaseRpcController, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse> respConverter) mutateRow(RowMutations mutations) Performs multiple mutations atomically on a single row.private <RES,RESP> CompletableFuture<RESP> mutateRow(HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, RowMutations mutation, RawAsyncTableImpl.Converter<org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest, byte[], RowMutations> reqConvert, Function<RES, RESP> respConverter) private <T> AsyncRpcRetryingCallerFactory.SingleRequestCallerBuilder<T>newCaller(byte[] row, int priority, long rpcTimeoutNs) private <T,R extends OperationWithAttributes & Row>
AsyncRpcRetryingCallerFactory.SingleRequestCallerBuilder<T>newCaller(R row, long rpcTimeoutNs) private TableOperationSpanBuilderprivate <REQ,RESP> CompletableFuture<RESP> noncedMutate(long nonceGroup, long nonce, HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, REQ req, RawAsyncTableImpl.NoncedConverter<org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest, byte[], REQ> reqConvert, RawAsyncTableImpl.Converter<RESP, HBaseRpcController, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse> respConverter) private <S,R> void onLocateComplete(Function<com.google.protobuf.RpcChannel, S> stubMaker, ServiceCaller<S, R> callable, AsyncTable.CoprocessorCallback<R> callback, List<HRegionLocation> locs, byte[] endKey, boolean endKeyInclusive, AtomicBoolean locateFinished, AtomicInteger unfinishedRequest, HRegionLocation loc, Throwable error) Puts some data in the table, in batch.Puts some data to the table.private longresultSize2CacheSize(long maxResultSize) voidscan(Scan scan, AdvancedScanResultConsumer consumer) The scan API uses the observer pattern.Return all the results that match the given scan object.private ScansetDefaultScanConfig(Scan scan) private static ResulttoResult(HBaseRpcController controller, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse resp) private List<CompletableFuture<Void>>voidMutate(List<? extends Row> actions) private static <REQ> CompletableFuture<Void>voidMutate(HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, REQ req, RawAsyncTableImpl.Converter<org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest, byte[], REQ> reqConvert) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.hadoop.hbase.client.AsyncTable
batchAll, checkAndMutateAll, deleteAll, exists, exists, existsAll, getAll, getScanner, getScanner, incrementColumnValue, incrementColumnValue, putAll
-
Field Details
-
LOG
-
conn
-
retryTimer
-
tableName
-
defaultScannerCaching
-
defaultScannerMaxResultSize
-
rpcTimeoutNs
-
readRpcTimeoutNs
-
writeRpcTimeoutNs
-
operationTimeoutNs
-
scanTimeoutNs
-
pauseNs
-
pauseNsForServerOverloaded
-
maxAttempts
-
startLogErrorsCnt
-
requestAttributes
-
-
Constructor Details
-
RawAsyncTableImpl
RawAsyncTableImpl(AsyncConnectionImpl conn, org.apache.hbase.thirdparty.io.netty.util.Timer retryTimer, AsyncTableBuilderBase<?> builder)
-
-
Method Details
-
getName
Description copied from interface:AsyncTableGets the fully qualified table name instance of this table.- Specified by:
getNamein interfaceAsyncTable<AdvancedScanResultConsumer>
-
getConfiguration
Description copied from interface:AsyncTableReturns theConfigurationobject used by this instance.The reference returned is not a copy, so any change made to it will affect this instance.
- Specified by:
getConfigurationin interfaceAsyncTable<AdvancedScanResultConsumer>
-
getDescriptor
Description copied from interface:AsyncTableGets theTableDescriptorfor this table.- Specified by:
getDescriptorin interfaceAsyncTable<AdvancedScanResultConsumer>
-
getRegionLocator
Description copied from interface:AsyncTableGets theAsyncTableRegionLocatorfor this table.- Specified by:
getRegionLocatorin interfaceAsyncTable<AdvancedScanResultConsumer>
-
call
private static <REQ,PREQ, CompletableFuture<RESP> callPRESP, RESP> (HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, REQ req, RawAsyncTableImpl.Converter<PREQ, byte[], REQ> reqConvert, RawAsyncTableImpl.RpcCall<PRESP, PREQ> rpcCall, RawAsyncTableImpl.Converter<RESP, HBaseRpcController, PRESP> respConverter) -
mutate
private static <REQ,RESP> CompletableFuture<RESP> mutate(HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, REQ req, RawAsyncTableImpl.Converter<org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest, byte[], REQ> reqConvert, RawAsyncTableImpl.Converter<RESP, HBaseRpcController, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse> respConverter) -
voidMutate
private static <REQ> CompletableFuture<Void> voidMutate(HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, REQ req, RawAsyncTableImpl.Converter<org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest, byte[], REQ> reqConvert) -
toResult
private static Result toResult(HBaseRpcController controller, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse resp) throws IOException - Throws:
IOException
-
noncedMutate
private <REQ,RESP> CompletableFuture<RESP> noncedMutate(long nonceGroup, long nonce, HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, REQ req, RawAsyncTableImpl.NoncedConverter<org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest, byte[], REQ> reqConvert, RawAsyncTableImpl.Converter<RESP, HBaseRpcController, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse> respConverter) -
newCaller
private <T> AsyncRpcRetryingCallerFactory.SingleRequestCallerBuilder<T> newCaller(byte[] row, int priority, long rpcTimeoutNs) -
newCaller
private <T,R extends OperationWithAttributes & Row> AsyncRpcRetryingCallerFactory.SingleRequestCallerBuilder<T> newCaller(R row, long rpcTimeoutNs) -
get
-
newTableOperationSpanBuilder
-
get
Description copied from interface:AsyncTableExtracts certain cells from a given row.- Specified by:
getin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
get- The object that specifies what data to fetch and from which row.- Returns:
- The data coming from the specified row, if it exists. If the row specified doesn't
exist, the
Resultinstance returned won't contain anyKeyValue, as indicated byResult.isEmpty(). The return value will be wrapped by aCompletableFuture.
-
put
Description copied from interface:AsyncTablePuts some data to the table.- Specified by:
putin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
put- The data to put.- Returns:
- A
CompletableFuturethat always returns null when complete normally.
-
delete
Description copied from interface:AsyncTableDeletes the specified cells/row.- Specified by:
deletein interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
delete- The object that specifies what to delete.- Returns:
- A
CompletableFuturethat always returns null when complete normally.
-
append
Description copied from interface:AsyncTableAppends values to one or more columns within a single row.This operation does not appear atomic to readers. Appends are done under a single row lock, so write operations to a row are synchronized, but readers do not take row locks so get and scan operations can see this operation partially completed.
- Specified by:
appendin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
append- object that specifies the columns and amounts to be used for the increment operations- Returns:
- values of columns after the append operation (maybe null). The return value will be
wrapped by a
CompletableFuture.
-
increment
Description copied from interface:AsyncTableIncrements one or more columns within a single row.This operation does not appear atomic to readers. Increments are done under a single row lock, so write operations to a row are synchronized, but readers do not take row locks so get and scan operations can see this operation partially completed.
- Specified by:
incrementin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
increment- object that specifies the columns and amounts to be used for the increment operations- Returns:
- values of columns after the increment. The return value will be wrapped by a
CompletableFuture.
-
checkAndMutate
Description copied from interface:AsyncTableAtomically checks if a row/family/qualifier value matches the expected value. If it does, it adds the Put/Delete/RowMutations.Use the returned
AsyncTable.CheckAndMutateBuilderto construct your request and then execute it. This is a fluent style API, the code is like:table.checkAndMutate(row, family).qualifier(qualifier).ifNotExists().thenPut(put) .thenAccept(succ -> { if (succ) { System.out.println("Check and put succeeded"); } else { System.out.println("Check and put failed"); } });- Specified by:
checkAndMutatein interfaceAsyncTable<AdvancedScanResultConsumer>
-
checkAndMutate
Description copied from interface:AsyncTableAtomically checks if a row matches the specified filter. If it does, it adds the Put/Delete/RowMutations.Use the returned
AsyncTable.CheckAndMutateWithFilterBuilderto construct your request and then execute it. This is a fluent style API, the code is like:table.checkAndMutate(row, filter).thenPut(put).thenAccept(succ -> { if (succ) { System.out.println("Check and put succeeded"); } else { System.out.println("Check and put failed"); } });- Specified by:
checkAndMutatein interfaceAsyncTable<AdvancedScanResultConsumer>
-
checkAndMutate
Description copied from interface:AsyncTablecheckAndMutate that atomically checks if a row matches the specified condition. If it does, it performs the specified action.- Specified by:
checkAndMutatein interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
checkAndMutate- The CheckAndMutate object.- Returns:
- A
CompletableFutures that represent the result for the CheckAndMutate.
-
checkAndMutate
public List<CompletableFuture<CheckAndMutateResult>> checkAndMutate(List<CheckAndMutate> checkAndMutates) Description copied from interface:AsyncTableBatch version of checkAndMutate. The specified CheckAndMutates are batched only in the sense that they are sent to a RS in one RPC, but each CheckAndMutate operation is still executed atomically (and thus, each may fail independently of others).- Specified by:
checkAndMutatein interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
checkAndMutates- The list of CheckAndMutate.- Returns:
- A list of
CompletableFutures that represent the result for each CheckAndMutate.
-
mutateRow
private <RES,RESP> CompletableFuture<RESP> mutateRow(HBaseRpcController controller, HRegionLocation loc, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface stub, RowMutations mutation, RawAsyncTableImpl.Converter<org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest, byte[], RowMutations> reqConvert, Function<RES, RESP> respConverter) -
mutateRow
Description copied from interface:AsyncTable- Specified by:
mutateRowin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
mutations- object that specifies the set of mutations to perform atomically- Returns:
- A
CompletableFuturethat returns results of Increment/Append operations
-
setDefaultScanConfig
-
scan
Description copied from interface:AsyncTableThe scan API uses the observer pattern.- Specified by:
scanin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
scan- A configuredScanobject.consumer- the consumer used to receive results.- See Also:
-
resultSize2CacheSize
-
getScanner
Description copied from interface:AsyncTableReturns a scanner on the current table as specified by theScanobject.- Specified by:
getScannerin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
scan- A configuredScanobject.- Returns:
- A scanner.
-
scanAll
Description copied from interface:AsyncTableReturn all the results that match the given scan object.Notice that usually you should use this method with a
Scanobject that has limit set. For example, if you want to get the closest row after a given row, you could do this:table.scanAll(new Scan().withStartRow(row, false).setLimit(1)).thenAccept(results -> { if (results.isEmpty()) { System.out.println("No row after " + Bytes.toStringBinary(row)); } else { System.out.println("The closest row after " + Bytes.toStringBinary(row) + " is " + Bytes.toStringBinary(results.stream().findFirst().get().getRow())); } });If your result set is very large, you should use other scan method to get a scanner or use callback to process the results. They will do chunking to prevent OOM. The scanAll method will fetch all the results and store them in a List and then return the list to you.
The scan metrics will be collected background if you enable it but you have no way to get it. Usually you can get scan metrics from
ResultScanner, or throughScanResultConsumer.onScanMetricsCreatedbut this method only returns a list of results. So if you really care about scan metrics then you'd better use other scan methods which return aResultScanneror let you pass in aScanResultConsumer. There is no performance difference between these scan methods so do not worry.- Specified by:
scanAllin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
scan- A configuredScanobject. So if you use this method to fetch a really large result set, it is likely to cause OOM.- Returns:
- The results of this small scan operation. The return value will be wrapped by a
CompletableFuture.
-
get
Description copied from interface:AsyncTableExtracts certain cells from the given rows, in batch.Notice that you may not get all the results with this function, which means some of the returned
CompletableFutures may succeed while some of the other returnedCompletableFutures may fail.- Specified by:
getin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
gets- The objects that specify what data to fetch and from which rows.- Returns:
- A list of
CompletableFutures that represent the result for each get.
-
put
Description copied from interface:AsyncTablePuts some data in the table, in batch.- Specified by:
putin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
puts- The list of mutations to apply.- Returns:
- A list of
CompletableFutures that represent the result for each put.
-
delete
Description copied from interface:AsyncTableDeletes the specified cells/rows in bulk.- Specified by:
deletein interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
deletes- list of things to delete.- Returns:
- A list of
CompletableFutures that represent the result for each delete.
-
batch
Description copied from interface:AsyncTableMethod that does a batch call on Deletes, Gets, Puts, Increments, Appends and RowMutations. The ordering of execution of the actions is not defined. Meaning if you do a Put and a Get in the sameAsyncTable.batch(java.util.List<? extends org.apache.hadoop.hbase.client.Row>)call, you will not necessarily be guaranteed that the Get returns what the Put had put.- Specified by:
batchin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
actions- list of Get, Put, Delete, Increment, Append, and RowMutations objects- Returns:
- A list of
CompletableFutures that represent the result for each action.
-
voidMutate
-
batch
-
getRpcTimeout
Description copied from interface:AsyncTableGet timeout of each rpc request in this Table instance. It will be overridden by a more specific rpc timeout config such as readRpcTimeout or writeRpcTimeout.- Specified by:
getRpcTimeoutin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
unit- the unit of time the timeout to be represented in- Returns:
- rpc timeout in the specified time unit
- See Also:
-
getReadRpcTimeout
Description copied from interface:AsyncTableGet timeout of each rpc read request in this Table instance.- Specified by:
getReadRpcTimeoutin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
unit- the unit of time the timeout to be represented in- Returns:
- read rpc timeout in the specified time unit
-
getWriteRpcTimeout
Description copied from interface:AsyncTableGet timeout of each rpc write request in this Table instance.- Specified by:
getWriteRpcTimeoutin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
unit- the unit of time the timeout to be represented in- Returns:
- write rpc timeout in the specified time unit
-
getOperationTimeout
Description copied from interface:AsyncTableGet timeout of each operation in Table instance.- Specified by:
getOperationTimeoutin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
unit- the unit of time the timeout to be represented in- Returns:
- operation rpc timeout in the specified time unit
-
getScanTimeout
Description copied from interface:AsyncTableGet the timeout of a single operation in a scan. It works like operation timeout for other operations.- Specified by:
getScanTimeoutin interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
unit- the unit of time the timeout to be represented in- Returns:
- scan rpc timeout in the specified time unit
-
getRequestAttributes
Description copied from interface:AsyncTableGet the map of request attributes- Specified by:
getRequestAttributesin interfaceAsyncTable<AdvancedScanResultConsumer>- Returns:
- a map of request attributes supplied by the client
-
coprocessorService
private <S,R> CompletableFuture<R> coprocessorService(Function<com.google.protobuf.RpcChannel, S> stubMaker, ServiceCaller<S, R> callable, RegionInfo region, byte[] row) -
coprocessorService
public <S,R> CompletableFuture<R> coprocessorService(Function<com.google.protobuf.RpcChannel, S> stubMaker, ServiceCaller<S, R> callable, byte[] row) Description copied from interface:AsyncTableExecute the given coprocessor call on the region which contains the givenrow.The
stubMakeris just a delegation to thenewStubcall. Usually it is only a one line lambda expression, like:channel -> xxxService.newStub(channel)
- Specified by:
coprocessorServicein interfaceAsyncTable<AdvancedScanResultConsumer>- Type Parameters:
S- the type of the asynchronous stubR- the type of the return value- Parameters:
stubMaker- a delegation to the actualnewStubcall.callable- a delegation to the actual protobuf rpc call. See the comment ofServiceCallerfor more details.row- The row key used to identify the remote region location- Returns:
- the return value of the protobuf rpc call, wrapped by a
CompletableFuture. - See Also:
-
locateFinished
-
onLocateComplete
private <S,R> void onLocateComplete(Function<com.google.protobuf.RpcChannel, S> stubMaker, ServiceCaller<S, R> callable, AsyncTable.CoprocessorCallback<R> callback, List<HRegionLocation> locs, byte[] endKey, boolean endKeyInclusive, AtomicBoolean locateFinished, AtomicInteger unfinishedRequest, HRegionLocation loc, Throwable error) -
coprocessorService
public <S,R> AsyncTable.CoprocessorServiceBuilder<S,R> coprocessorService(Function<com.google.protobuf.RpcChannel, S> stubMaker, ServiceCaller<S, R> callable, AsyncTable.CoprocessorCallback<R> callback) Description copied from interface:AsyncTableExecute a coprocessor call on the regions which are covered by a range.Use the returned
AsyncTable.CoprocessorServiceBuilderconstruct your request and then execute it.The
stubMakeris just a delegation to thexxxService.newStubcall. Usually it is only a one line lambda expression, like:channel -> xxxService.newStub(channel)
- Specified by:
coprocessorServicein interfaceAsyncTable<AdvancedScanResultConsumer>- Parameters:
stubMaker- a delegation to the actualnewStubcall.callable- a delegation to the actual protobuf rpc call. See the comment ofServiceCallerfor more details.callback- callback to get the response. See the comment ofAsyncTable.CoprocessorCallbackfor more details.
-