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/05/31 12:50:57 UTC
hbase git commit: HBASE-20660 Reopen regions using
ReopenTableRegionsProcedure
Repository: hbase
Updated Branches:
refs/heads/HBASE-19064 1f3e50fce -> 34b4dd2ef
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/34b4dd2e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/34b4dd2e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/34b4dd2e
Branch: refs/heads/HBASE-19064
Commit: 34b4dd2ef28de16ad495d5b991fcb008c8225dad
Parents: 1f3e50f
Author: zhangduo <zh...@apache.org>
Authored: Thu May 31 09:53:44 2018 +0800
Committer: zhangduo <zh...@apache.org>
Committed: Thu May 31 20:39:34 2018 +0800
----------------------------------------------------------------------
...ransitPeerSyncReplicationStateProcedure.java | 24 ++++++--------------
1 file changed, 7 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/34b4dd2e/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;