From b29aadc83592694136195726c95c11b8e51ec5c0 Mon Sep 17 00:00:00 2001 From: Duo Zhang Date: Thu, 21 Feb 2019 19:02:32 +0800 Subject: [PATCH] HBASE-21943 The usage of RegionLocations.mergeRegionLocations is wrong for async client --- .../hbase/client/AsyncNonMetaRegionLocator.java | 3 +-- .../hbase/client/AsyncRegionLocatorHelper.java | 14 -------------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.java index 1f23a1d985..5913f37426 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.java @@ -23,7 +23,6 @@ import static org.apache.hadoop.hbase.TableName.META_TABLE_NAME; import static org.apache.hadoop.hbase.client.AsyncRegionLocatorHelper.canUpdateOnError; import static org.apache.hadoop.hbase.client.AsyncRegionLocatorHelper.createRegionLocations; import static org.apache.hadoop.hbase.client.AsyncRegionLocatorHelper.isGood; -import static org.apache.hadoop.hbase.client.AsyncRegionLocatorHelper.mergeRegionLocations; import static org.apache.hadoop.hbase.client.AsyncRegionLocatorHelper.removeRegionLocation; import static org.apache.hadoop.hbase.client.ConnectionUtils.createClosestRowAfter; import static org.apache.hadoop.hbase.client.ConnectionUtils.isEmptyStopRow; @@ -235,7 +234,7 @@ class AsyncNonMetaRegionLocator { if (oldLocs == null) { return true; } - RegionLocations mergedLocs = mergeRegionLocations(locs, oldLocs); + RegionLocations mergedLocs = oldLocs.mergeLocations(locs); if (isEqual(mergedLocs, oldLocs)) { // the merged one is the same with the old one, give up LOG.trace("Will not add {} to cache because the old value {} " + diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncRegionLocatorHelper.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncRegionLocatorHelper.java index dd516ec42e..4dde1bbc89 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncRegionLocatorHelper.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncRegionLocatorHelper.java @@ -129,20 +129,6 @@ final class AsyncRegionLocatorHelper { } } - /** - * Create a new {@link RegionLocations} which is the merging result for the given two - * {@link RegionLocations}. - *

- * All the {@link RegionLocations} in async locator related class are immutable because we want to - * access them concurrently, so here we need to create a new one, instead of calling - * {@link RegionLocations#mergeLocations(RegionLocations)} directly. - */ - static RegionLocations mergeRegionLocations(RegionLocations newLocs, RegionLocations oldLocs) { - RegionLocations locs = new RegionLocations(newLocs.getRegionLocations()); - locs.mergeLocations(oldLocs); - return locs; - } - static boolean isGood(RegionLocations locs, int replicaId) { if (locs == null) { return false; -- 2.17.1