You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2018/11/08 23:21:29 UTC
[1/8] hbase git commit: Amend HBASE-21439 RegionLoads aren't being
used in RegionLoad cost functions
Repository: hbase
Updated Branches:
refs/heads/branch-1 36178f744 -> 68c939668
refs/heads/branch-1.3 6f53424f8 -> 6618a40ff
refs/heads/branch-1.4 4d81cfe7e -> 58e4731ac
refs/heads/branch-2 dcdebbffd -> 7c5e20022
refs/heads/branch-2.0 6214e7801 -> 6584a76d3
refs/heads/branch-2.1 3a13088a2 -> 0875fa063
refs/heads/master d9f32137b -> c4b231570
Amend HBASE-21439 RegionLoads aren't being used in RegionLoad cost functions
Addendum: Update RSGroup Test too
Signed-off-by: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c4b23157
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c4b23157
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c4b23157
Branch: refs/heads/master
Commit: c4b231570699954eb8bcaf1f5030cfa7939303dc
Parents: d9f3213
Author: Ben Lau <be...@oath.com>
Authored: Thu Nov 8 13:20:19 2018 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Nov 8 14:07:50 2018 -0800
----------------------------------------------------------------------
...GroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/c4b23157/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
----------------------------------------------------------------------
diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
index a63b7c7..723a295 100644
--- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
+++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
@@ -89,7 +89,7 @@ public class TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal
when(rl.getWriteRequestCount()).thenReturn(0L);
when(rl.getMemStoreSize()).thenReturn(Size.ZERO);
when(rl.getStoreFileSize()).thenReturn(Size.ZERO);
- regionLoadMap.put(info.getEncodedNameAsBytes(), rl);
+ regionLoadMap.put(info.getRegionName(), rl);
}
when(serverMetrics.getRegionMetrics()).thenReturn(regionLoadMap);
return serverMetrics;
[2/8] hbase git commit: HBASE-21439 RegionLoads aren't being used in
RegionLoad cost functions
Posted by ap...@apache.org.
HBASE-21439 RegionLoads aren't being used in RegionLoad cost functions
Signed-off-by: tedyu <yu...@gmail.com>
Signed-off-by: Andrew Purtell <ap...@apache.org>
Conflicts:
hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/13b68abb
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/13b68abb
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/13b68abb
Branch: refs/heads/branch-2
Commit: 13b68abb58ff6b4c832b4639ac1cd51755164649
Parents: dcdebbf
Author: Ben Lau <be...@oath.com>
Authored: Mon Nov 5 15:34:08 2018 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Nov 8 14:08:52 2018 -0800
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/RegionInfo.java | 22 ++++++++++++++++++++
.../hadoop/hbase/client/RegionInfoBuilder.java | 10 +--------
.../master/balancer/StochasticLoadBalancer.java | 6 +++---
.../balancer/TestStochasticLoadBalancer.java | 8 ++++---
4 files changed, 31 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/13b68abb/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
index 7f5d399..5bb4aef 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
@@ -18,6 +18,8 @@
*/
package org.apache.hadoop.hbase.client;
+import edu.umd.cs.findbugs.annotations.CheckForNull;
+
import java.io.DataInputStream;
import java.io.IOException;
import java.util.ArrayList;
@@ -271,6 +273,26 @@ public interface RegionInfo {
return encodedName;
}
+ @InterfaceAudience.Private
+ static String getRegionNameAsString(byte[] regionName) {
+ return getRegionNameAsString(null, regionName);
+ }
+
+ @InterfaceAudience.Private
+ static String getRegionNameAsString(@CheckForNull RegionInfo ri, byte[] regionName) {
+ if (RegionInfo.hasEncodedName(regionName)) {
+ // new format region names already have their encoded name.
+ return Bytes.toStringBinary(regionName);
+ }
+
+ // old format. regionNameStr doesn't have the region name.
+ if (ri == null) {
+ return Bytes.toStringBinary(regionName) + "." + RegionInfo.encodeRegionName(regionName);
+ } else {
+ return Bytes.toStringBinary(regionName) + "." + ri.getEncodedName();
+ }
+ }
+
/**
* @return Return a String of short, printable names for <code>hris</code>
* (usually encoded name) for us logging.
http://git-wip-us.apache.org/repos/asf/hbase/blob/13b68abb/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
index 3de9860..cd9e40b 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
@@ -287,15 +287,7 @@ public class RegionInfoBuilder {
*/
@Override
public String getRegionNameAsString() {
- if (RegionInfo.hasEncodedName(this.regionName)) {
- // new format region names already have their encoded name.
- return Bytes.toStringBinary(this.regionName);
- }
-
- // old format. regionNameStr doesn't have the region name.
- //
- //
- return Bytes.toStringBinary(this.regionName) + "." + this.getEncodedName();
+ return RegionInfo.getRegionNameAsString(this, this.regionName);
}
/** @return the encoded region name */
http://git-wip-us.apache.org/repos/asf/hbase/blob/13b68abb/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
index b2c6629..d25d1ec 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
@@ -45,7 +45,6 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.AssignRe
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction;
-import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
@@ -531,14 +530,15 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
clusterStatus.getLiveServerMetrics().forEach((ServerName sn, ServerMetrics sm) -> {
sm.getRegionMetrics().forEach((byte[] regionName, RegionMetrics rm) -> {
- Deque<BalancerRegionLoad> rLoads = oldLoads.get(Bytes.toString(regionName));
+ String regionNameAsString = RegionInfo.getRegionNameAsString(regionName);
+ Deque<BalancerRegionLoad> rLoads = oldLoads.get(regionNameAsString);
if (rLoads == null) {
rLoads = new ArrayDeque<>(numRegionLoadsToRemember + 1);
} else if (rLoads.size() >= numRegionLoadsToRemember) {
rLoads.remove();
}
rLoads.add(new BalancerRegionLoad(rm));
- loads.put(Bytes.toString(regionName), rLoads);
+ loads.put(regionNameAsString, rLoads);
});
});
http://git-wip-us.apache.org/repos/asf/hbase/blob/13b68abb/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
index 149bf68..41c3c4e 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
@@ -142,10 +142,12 @@ public class TestStochasticLoadBalancer extends BalancerTestBase {
loadBalancer.setClusterMetrics(clusterStatus);
}
- assertTrue(loadBalancer.loads.get(REGION_KEY) != null);
- assertTrue(loadBalancer.loads.get(REGION_KEY).size() == 15);
- Queue<BalancerRegionLoad> loads = loadBalancer.loads.get(REGION_KEY);
+ String regionNameAsString = RegionInfo.getRegionNameAsString(Bytes.toBytes(REGION_KEY));
+ assertTrue(loadBalancer.loads.get(regionNameAsString) != null);
+ assertTrue(loadBalancer.loads.get(regionNameAsString).size() == 15);
+
+ Queue<BalancerRegionLoad> loads = loadBalancer.loads.get(regionNameAsString);
int i = 0;
while(loads.size() > 0) {
BalancerRegionLoad rl = loads.remove();
[8/8] hbase git commit: HBASE-21439 RegionLoads aren't being used in
RegionLoad cost functions
Posted by ap...@apache.org.
HBASE-21439 RegionLoads aren't being used in RegionLoad cost functions
Amend HBASE-21439 Update RSGroup Test too
Signed-off-by: tedyu <yu...@gmail.com>
Signed-off-by: Andrew Purtell <ap...@apache.org>
Amending-Author: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/68c93966
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/68c93966
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/68c93966
Branch: refs/heads/branch-1
Commit: 68c939668540671a925d102c79d9958f739067e4
Parents: 36178f7
Author: Ben Lau <be...@oath.com>
Authored: Mon Nov 5 15:34:08 2018 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Nov 8 14:21:51 2018 -0800
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/HRegionInfo.java | 22 ++++++++++++++++++++
...cerWithStochasticLoadBalancerAsInternal.java | 2 +-
.../master/balancer/StochasticLoadBalancer.java | 7 +++----
.../balancer/TestStochasticLoadBalancer.java | 8 ++++---
4 files changed, 31 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/68c93966/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
index 8d93655..de503b5 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
@@ -48,6 +48,8 @@ import org.apache.hadoop.hbase.util.Pair;
import org.apache.hadoop.hbase.util.PairOfSameType;
import org.apache.hadoop.io.DataInputBuffer;
+import edu.umd.cs.findbugs.annotations.CheckForNull;
+
/**
* Information about a region. A region is a range of keys in the whole keyspace of a table, an
* identifier (a timestamp) for differentiating between subset ranges (after region split)
@@ -189,6 +191,26 @@ public class HRegionInfo implements Comparable<HRegionInfo> {
return encodedName;
}
+ @InterfaceAudience.Private
+ public static String getRegionNameAsString(byte[] regionName) {
+ return getRegionNameAsString(null, regionName);
+ }
+
+ @InterfaceAudience.Private
+ public static String getRegionNameAsString(@CheckForNull HRegionInfo ri, byte[] regionName) {
+ if (hasEncodedName(regionName)) {
+ // new format region names already have their encoded name.
+ return Bytes.toStringBinary(regionName);
+ }
+
+ // old format. regionNameStr doesn't have the region name.
+ if (ri == null) {
+ return Bytes.toStringBinary(regionName) + "." + encodeRegionName(regionName);
+ } else {
+ return Bytes.toStringBinary(regionName) + "." + ri.getEncodedName();
+ }
+ }
+
/**
* @return Return a short, printable name for this region (usually encoded name) for us logging.
*/
http://git-wip-us.apache.org/repos/asf/hbase/blob/68c93966/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
----------------------------------------------------------------------
diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
index 771b59f..4f4162c 100644
--- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
+++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
@@ -84,7 +84,7 @@ public class TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal
when(rl.getWriteRequestsCount()).thenReturn(0L);
when(rl.getMemStoreSizeMB()).thenReturn(0);
when(rl.getStorefileSizeMB()).thenReturn(0);
- regionLoadMap.put(info.getEncodedNameAsBytes(), rl);
+ regionLoadMap.put(info.getRegionName(), rl);
}
when(serverMetrics.getRegionsLoad()).thenReturn(regionLoadMap);
return serverMetrics;
http://git-wip-us.apache.org/repos/asf/hbase/blob/68c93966/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
index 2cfe2dc..84cf30a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
@@ -51,7 +51,6 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.AssignRe
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction;
-import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import com.google.common.base.Optional;
@@ -545,7 +544,8 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
continue;
}
for (Entry<byte[], RegionLoad> entry : sl.getRegionsLoad().entrySet()) {
- Deque<RegionLoad> rLoads = oldLoads.get(Bytes.toString(entry.getKey()));
+ String regionNameAsString = HRegionInfo.getRegionNameAsString(entry.getKey());
+ Deque<RegionLoad> rLoads = oldLoads.get(regionNameAsString);
if (rLoads == null) {
// There was nothing there
rLoads = new ArrayDeque<RegionLoad>();
@@ -553,8 +553,7 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
rLoads.remove();
}
rLoads.add(entry.getValue());
- loads.put(Bytes.toString(entry.getKey()), rLoads);
-
+ loads.put(regionNameAsString, rLoads);
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/68c93966/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
index ad459c1..40bec19 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
@@ -142,10 +142,12 @@ public class TestStochasticLoadBalancer extends BalancerTestBase {
loadBalancer.setClusterStatus(clusterStatus);
}
- assertTrue(loadBalancer.loads.get(REGION_KEY) != null);
- assertTrue(loadBalancer.loads.get(REGION_KEY).size() == 15);
- Queue<RegionLoad> loads = loadBalancer.loads.get(REGION_KEY);
+ String regionNameAsString = HRegionInfo.getRegionNameAsString(Bytes.toBytes(REGION_KEY));
+ assertTrue(loadBalancer.loads.get(regionNameAsString) != null);
+ assertTrue(loadBalancer.loads.get(regionNameAsString).size() == 15);
+
+ Queue<RegionLoad> loads = loadBalancer.loads.get(regionNameAsString);
int i = 0;
while(loads.size() > 0) {
RegionLoad rl = loads.remove();
[3/8] hbase git commit: Amend HBASE-21439 RegionLoads aren't being
used in RegionLoad cost functions
Posted by ap...@apache.org.
Amend HBASE-21439 RegionLoads aren't being used in RegionLoad cost functions
Addendum: Update RSGroup Test too
Signed-off-by: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7c5e2002
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7c5e2002
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7c5e2002
Branch: refs/heads/branch-2
Commit: 7c5e200229a2736da5e6c7a7738f806ef3b9c456
Parents: 13b68ab
Author: Ben Lau <be...@oath.com>
Authored: Thu Nov 8 13:20:19 2018 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Nov 8 14:08:58 2018 -0800
----------------------------------------------------------------------
...GroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/7c5e2002/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
----------------------------------------------------------------------
diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
index 0a49820..229931b 100644
--- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
+++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
@@ -88,7 +88,7 @@ public class TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal
when(rl.getWriteRequestCount()).thenReturn(0L);
when(rl.getMemStoreSize()).thenReturn(Size.ZERO);
when(rl.getStoreFileSize()).thenReturn(Size.ZERO);
- regionLoadMap.put(info.getEncodedNameAsBytes(), rl);
+ regionLoadMap.put(info.getRegionName(), rl);
}
when(serverMetrics.getRegionMetrics()).thenReturn(regionLoadMap);
return serverMetrics;
[4/8] hbase git commit: HBASE-21439 RegionLoads aren't being used in
RegionLoad cost functions
Posted by ap...@apache.org.
HBASE-21439 RegionLoads aren't being used in RegionLoad cost functions
Signed-off-by: tedyu <yu...@gmail.com>
Signed-off-by: Andrew Purtell <ap...@apache.org>
Conflicts:
hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/6584a76d
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/6584a76d
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/6584a76d
Branch: refs/heads/branch-2.0
Commit: 6584a76d38d3b8b3a23f488bf1f72097088a0ee1
Parents: 6214e78
Author: Ben Lau <be...@oath.com>
Authored: Mon Nov 5 15:34:08 2018 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Nov 8 14:09:39 2018 -0800
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/RegionInfo.java | 22 ++++++++++++++++++++
.../hadoop/hbase/client/RegionInfoBuilder.java | 10 +--------
.../master/balancer/StochasticLoadBalancer.java | 6 +++---
.../balancer/TestStochasticLoadBalancer.java | 8 ++++---
4 files changed, 31 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/6584a76d/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
index 7f5d399..5bb4aef 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
@@ -18,6 +18,8 @@
*/
package org.apache.hadoop.hbase.client;
+import edu.umd.cs.findbugs.annotations.CheckForNull;
+
import java.io.DataInputStream;
import java.io.IOException;
import java.util.ArrayList;
@@ -271,6 +273,26 @@ public interface RegionInfo {
return encodedName;
}
+ @InterfaceAudience.Private
+ static String getRegionNameAsString(byte[] regionName) {
+ return getRegionNameAsString(null, regionName);
+ }
+
+ @InterfaceAudience.Private
+ static String getRegionNameAsString(@CheckForNull RegionInfo ri, byte[] regionName) {
+ if (RegionInfo.hasEncodedName(regionName)) {
+ // new format region names already have their encoded name.
+ return Bytes.toStringBinary(regionName);
+ }
+
+ // old format. regionNameStr doesn't have the region name.
+ if (ri == null) {
+ return Bytes.toStringBinary(regionName) + "." + RegionInfo.encodeRegionName(regionName);
+ } else {
+ return Bytes.toStringBinary(regionName) + "." + ri.getEncodedName();
+ }
+ }
+
/**
* @return Return a String of short, printable names for <code>hris</code>
* (usually encoded name) for us logging.
http://git-wip-us.apache.org/repos/asf/hbase/blob/6584a76d/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
index 3de9860..cd9e40b 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
@@ -287,15 +287,7 @@ public class RegionInfoBuilder {
*/
@Override
public String getRegionNameAsString() {
- if (RegionInfo.hasEncodedName(this.regionName)) {
- // new format region names already have their encoded name.
- return Bytes.toStringBinary(this.regionName);
- }
-
- // old format. regionNameStr doesn't have the region name.
- //
- //
- return Bytes.toStringBinary(this.regionName) + "." + this.getEncodedName();
+ return RegionInfo.getRegionNameAsString(this, this.regionName);
}
/** @return the encoded region name */
http://git-wip-us.apache.org/repos/asf/hbase/blob/6584a76d/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
index b2c6629..d25d1ec 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
@@ -45,7 +45,6 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.AssignRe
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction;
-import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
@@ -531,14 +530,15 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
clusterStatus.getLiveServerMetrics().forEach((ServerName sn, ServerMetrics sm) -> {
sm.getRegionMetrics().forEach((byte[] regionName, RegionMetrics rm) -> {
- Deque<BalancerRegionLoad> rLoads = oldLoads.get(Bytes.toString(regionName));
+ String regionNameAsString = RegionInfo.getRegionNameAsString(regionName);
+ Deque<BalancerRegionLoad> rLoads = oldLoads.get(regionNameAsString);
if (rLoads == null) {
rLoads = new ArrayDeque<>(numRegionLoadsToRemember + 1);
} else if (rLoads.size() >= numRegionLoadsToRemember) {
rLoads.remove();
}
rLoads.add(new BalancerRegionLoad(rm));
- loads.put(Bytes.toString(regionName), rLoads);
+ loads.put(regionNameAsString, rLoads);
});
});
http://git-wip-us.apache.org/repos/asf/hbase/blob/6584a76d/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
index 149bf68..41c3c4e 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
@@ -142,10 +142,12 @@ public class TestStochasticLoadBalancer extends BalancerTestBase {
loadBalancer.setClusterMetrics(clusterStatus);
}
- assertTrue(loadBalancer.loads.get(REGION_KEY) != null);
- assertTrue(loadBalancer.loads.get(REGION_KEY).size() == 15);
- Queue<BalancerRegionLoad> loads = loadBalancer.loads.get(REGION_KEY);
+ String regionNameAsString = RegionInfo.getRegionNameAsString(Bytes.toBytes(REGION_KEY));
+ assertTrue(loadBalancer.loads.get(regionNameAsString) != null);
+ assertTrue(loadBalancer.loads.get(regionNameAsString).size() == 15);
+
+ Queue<BalancerRegionLoad> loads = loadBalancer.loads.get(regionNameAsString);
int i = 0;
while(loads.size() > 0) {
BalancerRegionLoad rl = loads.remove();
[6/8] hbase git commit: HBASE-21439 RegionLoads aren't being used in
RegionLoad cost functions
Posted by ap...@apache.org.
HBASE-21439 RegionLoads aren't being used in RegionLoad cost functions
Signed-off-by: tedyu <yu...@gmail.com>
Signed-off-by: Andrew Purtell <ap...@apache.org>
Amending-Author: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/6618a40f
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/6618a40f
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/6618a40f
Branch: refs/heads/branch-1.3
Commit: 6618a40ffa89a402ccd781e52038fe7bd2ad14b2
Parents: 6f53424
Author: Ben Lau <be...@oath.com>
Authored: Mon Nov 5 15:34:08 2018 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Nov 8 14:11:26 2018 -0800
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/HRegionInfo.java | 22 ++++++++++++++++++++
.../master/balancer/StochasticLoadBalancer.java | 7 +++----
.../balancer/TestStochasticLoadBalancer.java | 8 ++++---
3 files changed, 30 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/6618a40f/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
index 09ceeb9..72f9bb2 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
@@ -48,6 +48,8 @@ import org.apache.hadoop.hbase.util.Pair;
import org.apache.hadoop.hbase.util.PairOfSameType;
import org.apache.hadoop.io.DataInputBuffer;
+import edu.umd.cs.findbugs.annotations.CheckForNull;
+
/**
* Information about a region. A region is a range of keys in the whole keyspace of a table, an
* identifier (a timestamp) for differentiating between subset ranges (after region split)
@@ -189,6 +191,26 @@ public class HRegionInfo implements Comparable<HRegionInfo> {
return encodedName;
}
+ @InterfaceAudience.Private
+ public static String getRegionNameAsString(byte[] regionName) {
+ return getRegionNameAsString(null, regionName);
+ }
+
+ @InterfaceAudience.Private
+ public static String getRegionNameAsString(@CheckForNull HRegionInfo ri, byte[] regionName) {
+ if (hasEncodedName(regionName)) {
+ // new format region names already have their encoded name.
+ return Bytes.toStringBinary(regionName);
+ }
+
+ // old format. regionNameStr doesn't have the region name.
+ if (ri == null) {
+ return Bytes.toStringBinary(regionName) + "." + encodeRegionName(regionName);
+ } else {
+ return Bytes.toStringBinary(regionName) + "." + ri.getEncodedName();
+ }
+ }
+
/**
* @return Return a short, printable name for this region (usually encoded name) for us logging.
*/
http://git-wip-us.apache.org/repos/asf/hbase/blob/6618a40f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
index d1d8fa3..9891533 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
@@ -48,7 +48,6 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.Action.T
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.AssignRegionAction;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction;
-import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
/**
@@ -480,7 +479,8 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
continue;
}
for (Entry<byte[], RegionLoad> entry : sl.getRegionsLoad().entrySet()) {
- Deque<RegionLoad> rLoads = oldLoads.get(Bytes.toString(entry.getKey()));
+ String regionNameAsString = HRegionInfo.getRegionNameAsString(entry.getKey());
+ Deque<RegionLoad> rLoads = oldLoads.get(regionNameAsString);
if (rLoads == null) {
// There was nothing there
rLoads = new ArrayDeque<RegionLoad>();
@@ -488,8 +488,7 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
rLoads.remove();
}
rLoads.add(entry.getValue());
- loads.put(Bytes.toString(entry.getKey()), rLoads);
-
+ loads.put(regionNameAsString, rLoads);
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/6618a40f/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
index 9fd5919..e68de91 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
@@ -82,10 +82,12 @@ public class TestStochasticLoadBalancer extends BalancerTestBase {
loadBalancer.setClusterStatus(clusterStatus);
}
- assertTrue(loadBalancer.loads.get(REGION_KEY) != null);
- assertTrue(loadBalancer.loads.get(REGION_KEY).size() == 15);
- Queue<RegionLoad> loads = loadBalancer.loads.get(REGION_KEY);
+ String regionNameAsString = HRegionInfo.getRegionNameAsString(Bytes.toBytes(REGION_KEY));
+ assertTrue(loadBalancer.loads.get(regionNameAsString) != null);
+ assertTrue(loadBalancer.loads.get(regionNameAsString).size() == 15);
+
+ Queue<RegionLoad> loads = loadBalancer.loads.get(regionNameAsString);
int i = 0;
while(loads.size() > 0) {
RegionLoad rl = loads.remove();
[7/8] hbase git commit: HBASE-21439 RegionLoads aren't being used in
RegionLoad cost functions
Posted by ap...@apache.org.
HBASE-21439 RegionLoads aren't being used in RegionLoad cost functions
Amend HBASE-21439 Update RSGroup Test too
Signed-off-by: tedyu <yu...@gmail.com>
Signed-off-by: Andrew Purtell <ap...@apache.org>
Amending-Author: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/58e4731a
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/58e4731a
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/58e4731a
Branch: refs/heads/branch-1.4
Commit: 58e4731ac53b2e0fc98f795af96ab7e82eb3c4aa
Parents: 4d81cfe
Author: Ben Lau <be...@oath.com>
Authored: Mon Nov 5 15:34:08 2018 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Nov 8 14:16:42 2018 -0800
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/HRegionInfo.java | 22 ++++++++++++++++++++
...cerWithStochasticLoadBalancerAsInternal.java | 2 +-
.../master/balancer/StochasticLoadBalancer.java | 7 +++----
.../balancer/TestStochasticLoadBalancer.java | 8 ++++---
4 files changed, 31 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/58e4731a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
index 8d93655..de503b5 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
@@ -48,6 +48,8 @@ import org.apache.hadoop.hbase.util.Pair;
import org.apache.hadoop.hbase.util.PairOfSameType;
import org.apache.hadoop.io.DataInputBuffer;
+import edu.umd.cs.findbugs.annotations.CheckForNull;
+
/**
* Information about a region. A region is a range of keys in the whole keyspace of a table, an
* identifier (a timestamp) for differentiating between subset ranges (after region split)
@@ -189,6 +191,26 @@ public class HRegionInfo implements Comparable<HRegionInfo> {
return encodedName;
}
+ @InterfaceAudience.Private
+ public static String getRegionNameAsString(byte[] regionName) {
+ return getRegionNameAsString(null, regionName);
+ }
+
+ @InterfaceAudience.Private
+ public static String getRegionNameAsString(@CheckForNull HRegionInfo ri, byte[] regionName) {
+ if (hasEncodedName(regionName)) {
+ // new format region names already have their encoded name.
+ return Bytes.toStringBinary(regionName);
+ }
+
+ // old format. regionNameStr doesn't have the region name.
+ if (ri == null) {
+ return Bytes.toStringBinary(regionName) + "." + encodeRegionName(regionName);
+ } else {
+ return Bytes.toStringBinary(regionName) + "." + ri.getEncodedName();
+ }
+ }
+
/**
* @return Return a short, printable name for this region (usually encoded name) for us logging.
*/
http://git-wip-us.apache.org/repos/asf/hbase/blob/58e4731a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
----------------------------------------------------------------------
diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
index 771b59f..4f4162c 100644
--- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
+++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal.java
@@ -84,7 +84,7 @@ public class TestRSGroupBasedLoadBalancerWithStochasticLoadBalancerAsInternal
when(rl.getWriteRequestsCount()).thenReturn(0L);
when(rl.getMemStoreSizeMB()).thenReturn(0);
when(rl.getStorefileSizeMB()).thenReturn(0);
- regionLoadMap.put(info.getEncodedNameAsBytes(), rl);
+ regionLoadMap.put(info.getRegionName(), rl);
}
when(serverMetrics.getRegionsLoad()).thenReturn(regionLoadMap);
return serverMetrics;
http://git-wip-us.apache.org/repos/asf/hbase/blob/58e4731a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
index 2cfe2dc..84cf30a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
@@ -51,7 +51,6 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.AssignRe
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction;
-import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import com.google.common.base.Optional;
@@ -545,7 +544,8 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
continue;
}
for (Entry<byte[], RegionLoad> entry : sl.getRegionsLoad().entrySet()) {
- Deque<RegionLoad> rLoads = oldLoads.get(Bytes.toString(entry.getKey()));
+ String regionNameAsString = HRegionInfo.getRegionNameAsString(entry.getKey());
+ Deque<RegionLoad> rLoads = oldLoads.get(regionNameAsString);
if (rLoads == null) {
// There was nothing there
rLoads = new ArrayDeque<RegionLoad>();
@@ -553,8 +553,7 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
rLoads.remove();
}
rLoads.add(entry.getValue());
- loads.put(Bytes.toString(entry.getKey()), rLoads);
-
+ loads.put(regionNameAsString, rLoads);
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/58e4731a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
index ad459c1..40bec19 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
@@ -142,10 +142,12 @@ public class TestStochasticLoadBalancer extends BalancerTestBase {
loadBalancer.setClusterStatus(clusterStatus);
}
- assertTrue(loadBalancer.loads.get(REGION_KEY) != null);
- assertTrue(loadBalancer.loads.get(REGION_KEY).size() == 15);
- Queue<RegionLoad> loads = loadBalancer.loads.get(REGION_KEY);
+ String regionNameAsString = HRegionInfo.getRegionNameAsString(Bytes.toBytes(REGION_KEY));
+ assertTrue(loadBalancer.loads.get(regionNameAsString) != null);
+ assertTrue(loadBalancer.loads.get(regionNameAsString).size() == 15);
+
+ Queue<RegionLoad> loads = loadBalancer.loads.get(regionNameAsString);
int i = 0;
while(loads.size() > 0) {
RegionLoad rl = loads.remove();
[5/8] hbase git commit: HBASE-21439 RegionLoads aren't being used in
RegionLoad cost functions
Posted by ap...@apache.org.
HBASE-21439 RegionLoads aren't being used in RegionLoad cost functions
Signed-off-by: tedyu <yu...@gmail.com>
Signed-off-by: Andrew Purtell <ap...@apache.org>
Conflicts:
hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0875fa06
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0875fa06
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0875fa06
Branch: refs/heads/branch-2.1
Commit: 0875fa0634e0c78fc0776520602eeb35ee623f80
Parents: 3a13088
Author: Ben Lau <be...@oath.com>
Authored: Mon Nov 5 15:34:08 2018 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Nov 8 14:09:55 2018 -0800
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/RegionInfo.java | 22 ++++++++++++++++++++
.../hadoop/hbase/client/RegionInfoBuilder.java | 10 +--------
.../master/balancer/StochasticLoadBalancer.java | 6 +++---
.../balancer/TestStochasticLoadBalancer.java | 8 ++++---
4 files changed, 31 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/0875fa06/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
index 7f5d399..5bb4aef 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java
@@ -18,6 +18,8 @@
*/
package org.apache.hadoop.hbase.client;
+import edu.umd.cs.findbugs.annotations.CheckForNull;
+
import java.io.DataInputStream;
import java.io.IOException;
import java.util.ArrayList;
@@ -271,6 +273,26 @@ public interface RegionInfo {
return encodedName;
}
+ @InterfaceAudience.Private
+ static String getRegionNameAsString(byte[] regionName) {
+ return getRegionNameAsString(null, regionName);
+ }
+
+ @InterfaceAudience.Private
+ static String getRegionNameAsString(@CheckForNull RegionInfo ri, byte[] regionName) {
+ if (RegionInfo.hasEncodedName(regionName)) {
+ // new format region names already have their encoded name.
+ return Bytes.toStringBinary(regionName);
+ }
+
+ // old format. regionNameStr doesn't have the region name.
+ if (ri == null) {
+ return Bytes.toStringBinary(regionName) + "." + RegionInfo.encodeRegionName(regionName);
+ } else {
+ return Bytes.toStringBinary(regionName) + "." + ri.getEncodedName();
+ }
+ }
+
/**
* @return Return a String of short, printable names for <code>hris</code>
* (usually encoded name) for us logging.
http://git-wip-us.apache.org/repos/asf/hbase/blob/0875fa06/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
index 3de9860..cd9e40b 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfoBuilder.java
@@ -287,15 +287,7 @@ public class RegionInfoBuilder {
*/
@Override
public String getRegionNameAsString() {
- if (RegionInfo.hasEncodedName(this.regionName)) {
- // new format region names already have their encoded name.
- return Bytes.toStringBinary(this.regionName);
- }
-
- // old format. regionNameStr doesn't have the region name.
- //
- //
- return Bytes.toStringBinary(this.regionName) + "." + this.getEncodedName();
+ return RegionInfo.getRegionNameAsString(this, this.regionName);
}
/** @return the encoded region name */
http://git-wip-us.apache.org/repos/asf/hbase/blob/0875fa06/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
index b2c6629..d25d1ec 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
@@ -45,7 +45,6 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.AssignRe
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction;
-import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
@@ -531,14 +530,15 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
clusterStatus.getLiveServerMetrics().forEach((ServerName sn, ServerMetrics sm) -> {
sm.getRegionMetrics().forEach((byte[] regionName, RegionMetrics rm) -> {
- Deque<BalancerRegionLoad> rLoads = oldLoads.get(Bytes.toString(regionName));
+ String regionNameAsString = RegionInfo.getRegionNameAsString(regionName);
+ Deque<BalancerRegionLoad> rLoads = oldLoads.get(regionNameAsString);
if (rLoads == null) {
rLoads = new ArrayDeque<>(numRegionLoadsToRemember + 1);
} else if (rLoads.size() >= numRegionLoadsToRemember) {
rLoads.remove();
}
rLoads.add(new BalancerRegionLoad(rm));
- loads.put(Bytes.toString(regionName), rLoads);
+ loads.put(regionNameAsString, rLoads);
});
});
http://git-wip-us.apache.org/repos/asf/hbase/blob/0875fa06/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
index 149bf68..41c3c4e 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java
@@ -142,10 +142,12 @@ public class TestStochasticLoadBalancer extends BalancerTestBase {
loadBalancer.setClusterMetrics(clusterStatus);
}
- assertTrue(loadBalancer.loads.get(REGION_KEY) != null);
- assertTrue(loadBalancer.loads.get(REGION_KEY).size() == 15);
- Queue<BalancerRegionLoad> loads = loadBalancer.loads.get(REGION_KEY);
+ String regionNameAsString = RegionInfo.getRegionNameAsString(Bytes.toBytes(REGION_KEY));
+ assertTrue(loadBalancer.loads.get(regionNameAsString) != null);
+ assertTrue(loadBalancer.loads.get(regionNameAsString).size() == 15);
+
+ Queue<BalancerRegionLoad> loads = loadBalancer.loads.get(regionNameAsString);
int i = 0;
while(loads.size() > 0) {
BalancerRegionLoad rl = loads.remove();