hbase git commit: HBASE-20049 Region replicas of SPLIT and MERGED regions are kept in in-memory states until restarting master (Toshihiro Suzuki)
Repository: hbase Updated Branches: refs/heads/branch-2 991e163cc -> 8a22e4119 HBASE-20049 Region replicas of SPLIT and MERGED regions are kept in in-memory states until restarting master (Toshihiro Suzuki) Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/8a22e411 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/8a22e411 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/8a22e411 Branch: refs/heads/branch-2 Commit: 8a22e4119f511b0d149018e46db61f2166c7e8e7 Parents: 991e163 Author: tedyu Authored: Thu Feb 22 20:11:11 2018 -0800 Committer: tedyu Committed: Thu Feb 22 20:11:11 2018 -0800 -- .../src/main/protobuf/MasterProcedure.proto | 1 + .../master/assignment/AssignmentManager.java| 10 - .../assignment/MergeTableRegionsProcedure.java | 3 +- .../assignment/SplitTableRegionProcedure.java | 3 +- .../master/assignment/UnassignProcedure.java| 39 ++-- 5 files changed, 48 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/8a22e411/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto -- diff --git a/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto b/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto index f9b8807..f988224 100644 --- a/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto +++ b/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto @@ -330,6 +330,7 @@ message UnassignRegionStateData { // server we will send the unassign rpc too. optional ServerName hosting_server = 5; optional bool force = 4 [default = false]; + optional bool remove_after_unassigning = 6 [default = false]; } enum MoveRegionState { http://git-wip-us.apache.org/repos/asf/hbase/blob/8a22e411/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java -- 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 97d8258..ff65f46 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 @@ -733,11 +733,17 @@ public class AssignmentManager implements ServerListener { UnassignProcedure createUnassignProcedure(final RegionInfo regionInfo, final ServerName destinationServer, final boolean force) { +return createUnassignProcedure(regionInfo, destinationServer, force, false); + } + + UnassignProcedure createUnassignProcedure(final RegionInfo regionInfo, + final ServerName destinationServer, final boolean force, + final boolean removeAfterUnassigning) { // If destinationServer is null, figure it. ServerName sn = destinationServer != null? destinationServer: - getRegionStates().getRegionState(regionInfo).getServerName(); +getRegionStates().getRegionState(regionInfo).getServerName(); assert sn != null; -UnassignProcedure proc = new UnassignProcedure(regionInfo, sn, force); +UnassignProcedure proc = new UnassignProcedure(regionInfo, sn, force, removeAfterUnassigning); proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName()); return proc; } http://git-wip-us.apache.org/repos/asf/hbase/blob/8a22e411/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java index c65dbe5..1c448dc 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java @@ -682,7 +682,8 @@ public class MergeTableRegionsProcedure for (int i = 0; i < regionsToMerge.length; ++i) { for (int j = 0; j < regionReplication; ++j) { final RegionInfo hri = RegionReplicaUtil.getRegionInfoForReplica(regionsToMerge[i], j); -procs[procsIdx++] = env.getAssignmentManager().createUnassignProcedure(hri,null,true); +procs[procsIdx++] = env.getAssignmentManager(). +createUnassignProcedure(hri, null, true, !RegionReplicaUtil.isDefaultReplica(hri)); } } return procs; http://git-wip-us.apache.org/repos/asf/hbase/blob/8a22e411/hbase-serve
hbase git commit: HBASE-20049 Region replicas of SPLIT and MERGED regions are kept in in-memory states until restarting master
Repository: hbase Updated Branches: refs/heads/master 51f7b75f1 -> 1bc996aa5 HBASE-20049 Region replicas of SPLIT and MERGED regions are kept in in-memory states until restarting master Signed-off-by: tedyu Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/1bc996aa Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/1bc996aa Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/1bc996aa Branch: refs/heads/master Commit: 1bc996aa505e4a064a5bdf6abd56f77591643072 Parents: 51f7b75 Author: Toshihiro Suzuki Authored: Thu Feb 22 17:45:51 2018 +0900 Committer: tedyu Committed: Thu Feb 22 20:06:21 2018 -0800 -- .../src/main/protobuf/MasterProcedure.proto | 3 +- .../master/assignment/AssignmentManager.java| 10 - .../assignment/MergeTableRegionsProcedure.java | 3 +- .../assignment/SplitTableRegionProcedure.java | 3 +- .../master/assignment/UnassignProcedure.java| 39 ++-- 5 files changed, 49 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/1bc996aa/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto -- diff --git a/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto b/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto index 83099c3..1ab51e5 100644 --- a/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto +++ b/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto @@ -331,6 +331,7 @@ message UnassignRegionStateData { // server we will send the unassign rpc too. optional ServerName hosting_server = 5; optional bool force = 4 [default = false]; + optional bool remove_after_unassigning = 6 [default = false]; } enum MoveRegionState { @@ -409,4 +410,4 @@ message AddPeerStateData { message UpdatePeerConfigStateData { required ReplicationPeer peer_config = 1; -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/hbase/blob/1bc996aa/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java -- 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 97d8258..ff65f46 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 @@ -733,11 +733,17 @@ public class AssignmentManager implements ServerListener { UnassignProcedure createUnassignProcedure(final RegionInfo regionInfo, final ServerName destinationServer, final boolean force) { +return createUnassignProcedure(regionInfo, destinationServer, force, false); + } + + UnassignProcedure createUnassignProcedure(final RegionInfo regionInfo, + final ServerName destinationServer, final boolean force, + final boolean removeAfterUnassigning) { // If destinationServer is null, figure it. ServerName sn = destinationServer != null? destinationServer: - getRegionStates().getRegionState(regionInfo).getServerName(); +getRegionStates().getRegionState(regionInfo).getServerName(); assert sn != null; -UnassignProcedure proc = new UnassignProcedure(regionInfo, sn, force); +UnassignProcedure proc = new UnassignProcedure(regionInfo, sn, force, removeAfterUnassigning); proc.setOwner(getProcedureEnvironment().getRequestUser().getShortName()); return proc; } http://git-wip-us.apache.org/repos/asf/hbase/blob/1bc996aa/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java index c65dbe5..1c448dc 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java @@ -682,7 +682,8 @@ public class MergeTableRegionsProcedure for (int i = 0; i < regionsToMerge.length; ++i) { for (int j = 0; j < regionReplication; ++j) { final RegionInfo hri = RegionReplicaUtil.getRegionInfoForReplica(regionsToMerge[i], j); -procs[procsIdx++] = env.getAssignmentManager().createUnassignProcedure(hri,null,true); +procs[procsIdx++] = env.getAssignmentManager(). +createUnassign