You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2021/03/15 21:52:00 UTC
[hbase] branch branch-2.4 updated: HBASE-25621 Balancer should
check region plan source to avoid misplace region groups (#3002)
This is an automated email from the ASF dual-hosted git repository.
stack 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 df2daf9 HBASE-25621 Balancer should check region plan source to avoid misplace region groups (#3002)
df2daf9 is described below
commit df2daf9e1e4bb9767b8184dc2f5da862fc46d200
Author: haxiaolin <li...@gmail.com>
AuthorDate: Tue Mar 16 05:47:27 2021 +0800
HBASE-25621 Balancer should check region plan source to avoid misplace region groups (#3002)
Signed-off-by: stack <st...@duboce.net>
---
.../src/main/java/org/apache/hadoop/hbase/master/HMaster.java | 2 +-
.../hadoop/hbase/master/assignment/AssignmentManager.java | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 67dfcb6..9f15891 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -1737,7 +1737,7 @@ public class HMaster extends HRegionServer implements MasterServices {
LOG.info("balance " + plan);
//TODO: bulk assign
try {
- this.assignmentManager.moveAsync(plan);
+ this.assignmentManager.balance(plan);
} catch (HBaseIOException hioe) {
//should ignore failed plans here, avoiding the whole balance plans be aborted
//later calls of balance() can fetch up the failed and skipped plans
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
index 9603025..107330d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
@@ -725,6 +725,17 @@ public class AssignmentManager {
return ProcedureSyncWait.submitProcedure(master.getMasterProcedureExecutor(), proc);
}
+ public Future<byte[]> balance(RegionPlan regionPlan) throws HBaseIOException {
+ ServerName current =
+ this.getRegionStates().getRegionAssignments().get(regionPlan.getRegionInfo());
+ if (!current.equals(regionPlan.getSource())) {
+ LOG.debug("Skip region plan {}, source server not match, current region location is {}",
+ regionPlan, current);
+ return null;
+ }
+ return moveAsync(regionPlan);
+ }
+
// ============================================================================================
// RegionTransition procedures helpers
// ============================================================================================