This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new cb5f0df  HBASE-25995 Change the method name for 
DoubleArrayCost.setCosts (#3381)
cb5f0df is described below

commit cb5f0dfe1eff10a1d15e89b433998c445b061e2b
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]>
---
 .../hbase/master/balancer/CostFromRegionLoadFunction.java     |  4 ++--
 .../apache/hadoop/hbase/master/balancer/DoubleArrayCost.java  | 11 ++++++++++-
 .../master/balancer/PrimaryRegionCountSkewCostFunction.java   |  4 ++--
 .../hbase/master/balancer/RegionCountSkewCostFunction.java    |  4 ++--
 .../hadoop/hbase/master/balancer/TestDoubleArrayCost.java     |  6 +++---
 5 files changed, 19 insertions(+), 10 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/CostFromRegionLoadFunction.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/CostFromRegionLoadFunction.java
index 34657df..06eb07d 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/CostFromRegionLoadFunction.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/CostFromRegionLoadFunction.java
@@ -49,7 +49,7 @@ abstract class CostFromRegionLoadFunction extends 
CostFunction {
   void prepare(BalancerClusterState cluster) {
     super.prepare(cluster);
     cost.prepare(cluster.numServers);
-    cost.setCosts(costs -> {
+    cost.applyCostsChange(costs -> {
       for (int i = 0; i < costs.length; i++) {
         costs[i] = computeCostForRegionServer(i);
       }
@@ -59,7 +59,7 @@ abstract class CostFromRegionLoadFunction extends 
CostFunction {
   @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/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 cf20a33..11325c0 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/PrimaryRegionCountSkewCostFunction.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/PrimaryRegionCountSkewCostFunction.java
index 441d4a1..ab1500e 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/PrimaryRegionCountSkewCostFunction.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/PrimaryRegionCountSkewCostFunction.java
@@ -56,7 +56,7 @@ class PrimaryRegionCountSkewCostFunction extends CostFunction 
{
       return;
     }
     cost.prepare(cluster.numServers);
-    cost.setCosts(costs -> {
+    cost.applyCostsChange(costs -> {
       for (int i = 0; i < costs.length; i++) {
         costs[i] = computeCostForRegionServer(i);
       }
@@ -65,7 +65,7 @@ class PrimaryRegionCountSkewCostFunction extends CostFunction 
{
 
   @Override
   protected void regionMoved(int region, int oldServer, int newServer) {
-    cost.setCosts(costs -> {
+    cost.applyCostsChange(costs -> {
       costs[oldServer] = computeCostForRegionServer(oldServer);
       costs[newServer] = computeCostForRegionServer(newServer);
     });
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/RegionCountSkewCostFunction.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/RegionCountSkewCostFunction.java
index 55c502b..4f66ba4 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/RegionCountSkewCostFunction.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/RegionCountSkewCostFunction.java
@@ -45,7 +45,7 @@ class RegionCountSkewCostFunction extends CostFunction {
   void prepare(BalancerClusterState cluster) {
     super.prepare(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;
       }
@@ -67,7 +67,7 @@ class RegionCountSkewCostFunction extends CostFunction {
 
   @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;
     });
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 528b654..d3bef06 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;

Reply via email to