RawAsyncTableImpl.java 文件源码

java
阅读 22 收藏 0 点赞 0 评论 0

项目:hbase 作者:
private <S, R> void onLocateComplete(Function<RpcChannel, S> stubMaker,
    ServiceCaller<S, R> callable, CoprocessorCallback<R> callback,
    List<HRegionLocation> locs, byte[] endKey, boolean endKeyInclusive,
    AtomicBoolean locateFinished, AtomicInteger unfinishedRequest, HRegionLocation loc,
    Throwable error) {
  if (error != null) {
    callback.onError(error);
    return;
  }
  unfinishedRequest.incrementAndGet();
  RegionInfo region = loc.getRegion();
  if (locateFinished(region, endKey, endKeyInclusive)) {
    locateFinished.set(true);
  } else {
    conn.getLocator()
        .getRegionLocation(tableName, region.getEndKey(), RegionLocateType.CURRENT,
          operationTimeoutNs)
        .whenComplete((l, e) -> onLocateComplete(stubMaker, callable, callback, locs, endKey,
          endKeyInclusive, locateFinished, unfinishedRequest, l, e));
  }
  coprocessorService(stubMaker, callable, region, region.getStartKey()).whenComplete((r, e) -> {
    if (e != null) {
      callback.onRegionError(region, e);
    } else {
      callback.onRegionComplete(region, r);
    }
    if (unfinishedRequest.decrementAndGet() == 0 && locateFinished.get()) {
      callback.onComplete();
    }
  });
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号