2121import java .util .HashSet ;
2222import java .util .List ;
2323import java .util .Set ;
24+ import java .util .stream .Collectors ;
2425
2526import org .apache .hadoop .hbase .ServerName ;
2627import org .apache .hadoop .hbase .client .RegionInfo ;
@@ -70,8 +71,11 @@ public EnabledTableSnapshotHandler prepare() throws Exception {
7071 */
7172 @ Override
7273 protected void snapshotRegions (List <Pair <RegionInfo , ServerName >> regions ) throws IOException {
73- Set <String > regionServers = new HashSet <>(regions .size ());
74- for (Pair <RegionInfo , ServerName > region : regions ) {
74+ List <Pair <RegionInfo , ServerName >> defaultRegions = regions .stream ()
75+ .filter (region -> RegionReplicaUtil .isDefaultReplica (region .getFirst ()))
76+ .collect (Collectors .toList ());
77+ Set <String > regionServers = new HashSet <>(defaultRegions .size ());
78+ for (Pair <RegionInfo , ServerName > region : defaultRegions ) {
7579 if (region != null && region .getFirst () != null && region .getSecond () != null ) {
7680 RegionInfo hri = region .getFirst ();
7781 if (hri .isOffline () && (hri .isSplit () || hri .isSplitParent ())) continue ;
@@ -96,7 +100,7 @@ protected void snapshotRegions(List<Pair<RegionInfo, ServerName>> regions) throw
96100 LOG .info ("Done waiting - online snapshot for " + this .snapshot .getName ());
97101
98102 // Take the offline regions as disabled
99- for (Pair <RegionInfo , ServerName > region : regions ) {
103+ for (Pair <RegionInfo , ServerName > region : defaultRegions ) {
100104 RegionInfo regionInfo = region .getFirst ();
101105 if (regionInfo .isOffline () && (regionInfo .isSplit () || regionInfo .isSplitParent ()) &&
102106 RegionReplicaUtil .isDefaultReplica (regionInfo )) {
0 commit comments