This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2.4
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.4 by this push:
new 5159eae HBASE-25995 Change the method name for
DoubleArrayCost.setCosts (#3381)
5159eae is described below
commit 5159eaec129d963ad1df90d89d467b6e0c353e01
Author: Duo Zhang <[email protected]>
AuthorDate: Tue Jun 15 11:53:00 2021 +0800
HBASE-25995 Change the method name for DoubleArrayCost.setCosts (#3381)
Signed-off-by: Yulin Niu <[email protected]>
---
.../apache/hadoop/hbase/master/balancer/DoubleArrayCost.java | 11 ++++++++++-
.../hadoop/hbase/master/balancer/StochasticLoadBalancer.java | 12 ++++++------
.../hadoop/hbase/master/balancer/TestDoubleArrayCost.java | 6 +++---
3 files changed, 19 insertions(+), 10 deletions(-)
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/DoubleArrayCost.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/DoubleArrayCost.java
index f370b80..154adcd 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/DoubleArrayCost.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/DoubleArrayCost.java
@@ -43,7 +43,16 @@ final class DoubleArrayCost {
}
}
- void setCosts(Consumer<double[]> consumer) {
+ /**
+ * We do not want to introduce a getCosts method to let upper layer get the
cost array directly,
+ * so here we introduce this method to take a {@link Consumer} as parameter,
where we will pass
+ * the actual cost array in, so you can change the element of the cost array
in the
+ * {@link Consumer} implementation.
+ * <p/>
+ * Usually, in prepare method, you need to fill all the elements of the cost
array, while in
+ * regionMoved method, you just need to update the element for the effect
region servers.
+ */
+ void applyCostsChange(Consumer<double[]> consumer) {
consumer.accept(costs);
costsChanged = true;
}
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 26d8d43..590ea4b 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
@@ -959,7 +959,7 @@ public class StochasticLoadBalancer extends
BaseLoadBalancer {
void init(Cluster cluster) {
super.init(cluster);
cost.prepare(cluster.numServers);
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
for (int i = 0; i < cluster.numServers; i++) {
costs[i] = cluster.regionsPerServer[i].length;
}
@@ -981,7 +981,7 @@ public class StochasticLoadBalancer extends
BaseLoadBalancer {
@Override
protected void regionMoved(int region, int oldServer, int newServer) {
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
costs[oldServer] = cluster.regionsPerServer[oldServer].length;
costs[newServer] = cluster.regionsPerServer[newServer].length;
});
@@ -1023,7 +1023,7 @@ public class StochasticLoadBalancer extends
BaseLoadBalancer {
return;
}
cost.prepare(cluster.numServers);
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
for (int i = 0; i < costs.length; i++) {
costs[i] = computeCostForRegionServer(i);
}
@@ -1037,7 +1037,7 @@ public class StochasticLoadBalancer extends
BaseLoadBalancer {
@Override
protected void regionMoved(int region, int oldServer, int newServer) {
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
costs[oldServer] = computeCostForRegionServer(oldServer);
costs[newServer] = computeCostForRegionServer(newServer);
});
@@ -1205,7 +1205,7 @@ public class StochasticLoadBalancer extends
BaseLoadBalancer {
void init(Cluster cluster) {
super.init(cluster);
cost.prepare(cluster.numServers);
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
for (int i = 0; i < costs.length; i++) {
costs[i] = computeCostForRegionServer(i);
}
@@ -1215,7 +1215,7 @@ public class StochasticLoadBalancer extends
BaseLoadBalancer {
@Override
protected void regionMoved(int region, int oldServer, int newServer) {
// recompute the stat for the given two region servers
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
costs[oldServer] = computeCostForRegionServer(oldServer);
costs[newServer] = computeCostForRegionServer(newServer);
});
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestDoubleArrayCost.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestDoubleArrayCost.java
index 8dd1e49..f0b8db8 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestDoubleArrayCost.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestDoubleArrayCost.java
@@ -38,7 +38,7 @@ public class TestDoubleArrayCost {
DoubleArrayCost cost = new DoubleArrayCost();
cost.prepare(100);
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
for (int i = 0; i < 100; i++) {
costs[i] = 10;
}
@@ -46,7 +46,7 @@ public class TestDoubleArrayCost {
assertEquals(0, cost.cost(), 0.01);
cost.prepare(101);
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
for (int i = 0; i < 100; i++) {
costs[i] = 0;
}
@@ -55,7 +55,7 @@ public class TestDoubleArrayCost {
assertEquals(1, cost.cost(), 0.01);
cost.prepare(200);
- cost.setCosts(costs -> {
+ cost.applyCostsChange(costs -> {
for (int i = 0; i < 100; i++) {
costs[i] = 0;
costs[i + 100] = 100;