You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/06/28 03:23:58 UTC
[05/39] hbase git commit: HBASE-20660 Reopen regions using
ReopenTableRegionsProcedure
HBASE-20660 Reopen regions using ReopenTableRegionsProcedure
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b480df96
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b480df96
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b480df96
Branch: refs/heads/HBASE-19064
Commit: b480df966b438090e999bfd17042c590a75f5003
Parents: b0021bd
Author: zhangduo <zh...@apache.org>
Authored: Thu May 31 09:53:44 2018 +0800
Committer: zhangduo <zh...@apache.org>
Committed: Thu Jun 28 11:22:31 2018 +0800
----------------------------------------------------------------------
...ransitPeerSyncReplicationStateProcedure.java | 24 ++++++--------------
1 file changed, 7 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/b480df96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.java
index 81ee6b6..66f67dd 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.java
@@ -18,16 +18,14 @@
package org.apache.hadoop.hbase.master.replication;
import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.DoNotRetryIOException;
-import org.apache.hadoop.hbase.client.RegionInfo;
import org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil;
import org.apache.hadoop.hbase.master.MasterCoprocessorHost;
import org.apache.hadoop.hbase.master.MasterFileSystem;
import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;
+import org.apache.hadoop.hbase.master.procedure.ReopenTableRegionsProcedure;
import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
@@ -141,11 +139,10 @@ public class TransitPeerSyncReplicationStateProcedure
}
}
- private List<RegionInfo> getRegionsToReopen(MasterProcedureEnv env) {
- return env.getReplicationPeerManager().getPeerConfig(peerId).get().getTableCFsMap().keySet()
- .stream()
- .flatMap(tn -> env.getAssignmentManager().getRegionStates().getRegionsOfTable(tn).stream())
- .collect(Collectors.toList());
+ private void reopenRegions(MasterProcedureEnv env) {
+ addChildProcedure(
+ env.getReplicationPeerManager().getPeerConfig(peerId).get().getTableCFsMap().keySet().stream()
+ .map(ReopenTableRegionsProcedure::new).toArray(ReopenTableRegionsProcedure[]::new));
}
private void createDirForRemoteWAL(MasterProcedureEnv env)
@@ -190,7 +187,7 @@ public class TransitPeerSyncReplicationStateProcedure
}
private void replayRemoteWAL() {
- addChildProcedure(new RecoverStandbyProcedure[] { new RecoverStandbyProcedure(peerId) });
+ addChildProcedure(new RecoverStandbyProcedure(peerId));
}
@Override
@@ -252,14 +249,7 @@ public class TransitPeerSyncReplicationStateProcedure
: PeerSyncReplicationStateTransitionState.TRANSIT_PEER_NEW_SYNC_REPLICATION_STATE);
return Flow.HAS_MORE_STATE;
case REOPEN_ALL_REGIONS_IN_PEER:
- try {
- addChildProcedure(
- env.getAssignmentManager().createReopenProcedures(getRegionsToReopen(env)));
- } catch (IOException e) {
- LOG.warn("Failed to schedule region reopen for peer {} when starting transiting sync " +
- "replication peer state from {} to {}, retry", peerId, fromState, toState, e);
- throw new ProcedureYieldException();
- }
+ reopenRegions(env);
setNextState(
PeerSyncReplicationStateTransitionState.TRANSIT_PEER_NEW_SYNC_REPLICATION_STATE);
return Flow.HAS_MORE_STATE;