@Deprecated
  default <R extends Message> Map<byte[], R> batchCoprocessorService(
    Descriptors.MethodDescriptor methodDescriptor, Message request, byte[] startKey, byte[] endKey,
    R responsePrototype) throws ServiceException, Throwable {
    final Map<byte[], R> results =
      Collections.synchronizedMap(new TreeMap<byte[], R>(Bytes.BYTES_COMPARATOR));
    batchCoprocessorService(methodDescriptor, request, startKey, endKey, responsePrototype,
      new Batch.Callback<R>() {
        @Override
        public void update(byte[] region, byte[] row, R result) {
          if (region != null) {
            results.put(region, result);
          }
        }
      });
    return results;
  }
Creates an instance of the given {@link Service} subclass for each table region spanning the
range from the {@code startKey} row to {@code endKey} row (inclusive), all the invocations to
the same region server will be batched into one call. The coprocessor service is invoked
according to the service instance, method name and parameters.
@param methodDescriptor  the descriptor for the protobuf service method to call.
@param request           the method call parameters
@param startKey          start region selection with region containing this row. If
                         {@code null}, the selection will start with the first table region.
@param endKey            select regions up to and including the region containing this row. If
                         {@code null}, selection will continue through the last table region.
@param responsePrototype the proto type of the response of the method in Service.
@param <R>               the response type for the coprocessor Service method
@return a map of result values keyed by region name
@deprecated since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
            interface for of a protobuf stub, so it is not possible to do it in an asynchronous
            way, even if now we are building the {@link Table} implementation based on the
            {@link AsyncTable}, which is not good. Use the coprocessorService methods in
            {@link AsyncTable} directly instead.
@see Connection#toAsyncConnection()
hbase-client/src/main/java/org/apache/hadoop/hbase/client/Table.java