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 2017/05/27 20:18:17 UTC

[25/29] hbase git commit: HBASE-14614 Procedure v2 - Core Assignment Manager (Matteo Bertozzi) Move to a new AssignmentManager, one that describes Assignment using a State Machine built on top of ProcedureV2 facility.

http://git-wip-us.apache.org/repos/asf/hbase/blob/657a5d46/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProcedureProtos.java
----------------------------------------------------------------------
diff --git a/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProcedureProtos.java b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProcedureProtos.java
index d7bbd05..0ec9b22 100644
--- a/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProcedureProtos.java
+++ b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProcedureProtos.java
@@ -1734,100 +1734,201 @@ public final class MasterProcedureProtos {
   }
 
   /**
-   * Protobuf enum {@code hbase.pb.MergeTableRegionsState}
+   * Protobuf enum {@code hbase.pb.DispatchMergingRegionsState}
    */
-  public enum MergeTableRegionsState
+  public enum DispatchMergingRegionsState
       implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
     /**
-     * <code>MERGE_TABLE_REGIONS_PREPARE = 1;</code>
+     * <code>DISPATCH_MERGING_REGIONS_PREPARE = 1;</code>
      */
-    MERGE_TABLE_REGIONS_PREPARE(1),
+    DISPATCH_MERGING_REGIONS_PREPARE(1),
     /**
-     * <code>MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS = 2;</code>
+     * <code>DISPATCH_MERGING_REGIONS_PRE_OPERATION = 2;</code>
      */
-    MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS(2),
+    DISPATCH_MERGING_REGIONS_PRE_OPERATION(2),
     /**
-     * <code>MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION = 3;</code>
+     * <code>DISPATCH_MERGING_REGIONS_MOVE_REGION_TO_SAME_RS = 3;</code>
      */
-    MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION(3),
+    DISPATCH_MERGING_REGIONS_MOVE_REGION_TO_SAME_RS(3),
     /**
-     * <code>MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE = 4;</code>
+     * <code>DISPATCH_MERGING_REGIONS_DO_MERGE_IN_RS = 4;</code>
      */
-    MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE(4),
+    DISPATCH_MERGING_REGIONS_DO_MERGE_IN_RS(4),
     /**
-     * <code>MERGE_TABLE_REGIONS_CLOSE_REGIONS = 5;</code>
+     * <code>DISPATCH_MERGING_REGIONS_POST_OPERATION = 5;</code>
      */
-    MERGE_TABLE_REGIONS_CLOSE_REGIONS(5),
+    DISPATCH_MERGING_REGIONS_POST_OPERATION(5),
+    ;
+
     /**
-     * <code>MERGE_TABLE_REGIONS_CREATE_MERGED_REGION = 6;</code>
+     * <code>DISPATCH_MERGING_REGIONS_PREPARE = 1;</code>
      */
-    MERGE_TABLE_REGIONS_CREATE_MERGED_REGION(6),
+    public static final int DISPATCH_MERGING_REGIONS_PREPARE_VALUE = 1;
     /**
-     * <code>MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION = 7;</code>
+     * <code>DISPATCH_MERGING_REGIONS_PRE_OPERATION = 2;</code>
      */
-    MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION(7),
+    public static final int DISPATCH_MERGING_REGIONS_PRE_OPERATION_VALUE = 2;
     /**
-     * <code>MERGE_TABLE_REGIONS_UPDATE_META = 8;</code>
+     * <code>DISPATCH_MERGING_REGIONS_MOVE_REGION_TO_SAME_RS = 3;</code>
      */
-    MERGE_TABLE_REGIONS_UPDATE_META(8),
+    public static final int DISPATCH_MERGING_REGIONS_MOVE_REGION_TO_SAME_RS_VALUE = 3;
     /**
-     * <code>MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION = 9;</code>
+     * <code>DISPATCH_MERGING_REGIONS_DO_MERGE_IN_RS = 4;</code>
      */
-    MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION(9),
+    public static final int DISPATCH_MERGING_REGIONS_DO_MERGE_IN_RS_VALUE = 4;
     /**
-     * <code>MERGE_TABLE_REGIONS_OPEN_MERGED_REGION = 10;</code>
+     * <code>DISPATCH_MERGING_REGIONS_POST_OPERATION = 5;</code>
      */
-    MERGE_TABLE_REGIONS_OPEN_MERGED_REGION(10),
+    public static final int DISPATCH_MERGING_REGIONS_POST_OPERATION_VALUE = 5;
+
+
+    public final int getNumber() {
+      return value;
+    }
+
     /**
-     * <code>MERGE_TABLE_REGIONS_POST_OPERATION = 11;</code>
+     * @deprecated Use {@link #forNumber(int)} instead.
      */
-    MERGE_TABLE_REGIONS_POST_OPERATION(11),
-    ;
+    @java.lang.Deprecated
+    public static DispatchMergingRegionsState valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static DispatchMergingRegionsState forNumber(int value) {
+      switch (value) {
+        case 1: return DISPATCH_MERGING_REGIONS_PREPARE;
+        case 2: return DISPATCH_MERGING_REGIONS_PRE_OPERATION;
+        case 3: return DISPATCH_MERGING_REGIONS_MOVE_REGION_TO_SAME_RS;
+        case 4: return DISPATCH_MERGING_REGIONS_DO_MERGE_IN_RS;
+        case 5: return DISPATCH_MERGING_REGIONS_POST_OPERATION;
+        default: return null;
+      }
+    }
+
+    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<DispatchMergingRegionsState>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+        DispatchMergingRegionsState> internalValueMap =
+          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<DispatchMergingRegionsState>() {
+            public DispatchMergingRegionsState findValueByNumber(int number) {
+              return DispatchMergingRegionsState.forNumber(number);
+            }
+          };
+
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(14);
+    }
+
+    private static final DispatchMergingRegionsState[] VALUES = values();
+
+    public static DispatchMergingRegionsState valueOf(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private DispatchMergingRegionsState(int value) {
+      this.value = value;
+    }
 
+    // @@protoc_insertion_point(enum_scope:hbase.pb.DispatchMergingRegionsState)
+  }
+
+  /**
+   * Protobuf enum {@code hbase.pb.SplitTableRegionState}
+   */
+  public enum SplitTableRegionState
+      implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
     /**
-     * <code>MERGE_TABLE_REGIONS_PREPARE = 1;</code>
+     * <code>SPLIT_TABLE_REGION_PREPARE = 1;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_PREPARE_VALUE = 1;
+    SPLIT_TABLE_REGION_PREPARE(1),
+    /**
+     * <code>SPLIT_TABLE_REGION_PRE_OPERATION = 2;</code>
+     */
+    SPLIT_TABLE_REGION_PRE_OPERATION(2),
+    /**
+     * <code>SPLIT_TABLE_REGION_CLOSE_PARENT_REGION = 3;</code>
+     */
+    SPLIT_TABLE_REGION_CLOSE_PARENT_REGION(3),
+    /**
+     * <code>SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS = 4;</code>
+     */
+    SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS(4),
+    /**
+     * <code>SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR = 5;</code>
+     */
+    SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR(5),
+    /**
+     * <code>SPLIT_TABLE_REGION_UPDATE_META = 6;</code>
+     */
+    SPLIT_TABLE_REGION_UPDATE_META(6),
+    /**
+     * <code>SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR = 7;</code>
+     */
+    SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR(7),
+    /**
+     * <code>SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS = 8;</code>
+     */
+    SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS(8),
     /**
-     * <code>MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS = 2;</code>
+     * <code>SPLIT_TABLE_REGION_POST_OPERATION = 9;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS_VALUE = 2;
+    SPLIT_TABLE_REGION_POST_OPERATION(9),
+    ;
+
     /**
-     * <code>MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION = 3;</code>
+     * <code>SPLIT_TABLE_REGION_PREPARE = 1;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION_VALUE = 3;
+    public static final int SPLIT_TABLE_REGION_PREPARE_VALUE = 1;
     /**
-     * <code>MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE = 4;</code>
+     * <code>SPLIT_TABLE_REGION_PRE_OPERATION = 2;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE_VALUE = 4;
+    public static final int SPLIT_TABLE_REGION_PRE_OPERATION_VALUE = 2;
     /**
-     * <code>MERGE_TABLE_REGIONS_CLOSE_REGIONS = 5;</code>
+     * <code>SPLIT_TABLE_REGION_CLOSE_PARENT_REGION = 3;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_CLOSE_REGIONS_VALUE = 5;
+    public static final int SPLIT_TABLE_REGION_CLOSE_PARENT_REGION_VALUE = 3;
     /**
-     * <code>MERGE_TABLE_REGIONS_CREATE_MERGED_REGION = 6;</code>
+     * <code>SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS = 4;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_CREATE_MERGED_REGION_VALUE = 6;
+    public static final int SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS_VALUE = 4;
     /**
-     * <code>MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION = 7;</code>
+     * <code>SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR = 5;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION_VALUE = 7;
+    public static final int SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR_VALUE = 5;
     /**
-     * <code>MERGE_TABLE_REGIONS_UPDATE_META = 8;</code>
+     * <code>SPLIT_TABLE_REGION_UPDATE_META = 6;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_UPDATE_META_VALUE = 8;
+    public static final int SPLIT_TABLE_REGION_UPDATE_META_VALUE = 6;
     /**
-     * <code>MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION = 9;</code>
+     * <code>SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR = 7;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION_VALUE = 9;
+    public static final int SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR_VALUE = 7;
     /**
-     * <code>MERGE_TABLE_REGIONS_OPEN_MERGED_REGION = 10;</code>
+     * <code>SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS = 8;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_OPEN_MERGED_REGION_VALUE = 10;
+    public static final int SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS_VALUE = 8;
     /**
-     * <code>MERGE_TABLE_REGIONS_POST_OPERATION = 11;</code>
+     * <code>SPLIT_TABLE_REGION_POST_OPERATION = 9;</code>
      */
-    public static final int MERGE_TABLE_REGIONS_POST_OPERATION_VALUE = 11;
+    public static final int SPLIT_TABLE_REGION_POST_OPERATION_VALUE = 9;
 
 
     public final int getNumber() {
@@ -1838,36 +1939,34 @@ public final class MasterProcedureProtos {
      * @deprecated Use {@link #forNumber(int)} instead.
      */
     @java.lang.Deprecated
-    public static MergeTableRegionsState valueOf(int value) {
+    public static SplitTableRegionState valueOf(int value) {
       return forNumber(value);
     }
 
-    public static MergeTableRegionsState forNumber(int value) {
+    public static SplitTableRegionState forNumber(int value) {
       switch (value) {
-        case 1: return MERGE_TABLE_REGIONS_PREPARE;
-        case 2: return MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS;
-        case 3: return MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION;
-        case 4: return MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE;
-        case 5: return MERGE_TABLE_REGIONS_CLOSE_REGIONS;
-        case 6: return MERGE_TABLE_REGIONS_CREATE_MERGED_REGION;
-        case 7: return MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION;
-        case 8: return MERGE_TABLE_REGIONS_UPDATE_META;
-        case 9: return MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION;
-        case 10: return MERGE_TABLE_REGIONS_OPEN_MERGED_REGION;
-        case 11: return MERGE_TABLE_REGIONS_POST_OPERATION;
+        case 1: return SPLIT_TABLE_REGION_PREPARE;
+        case 2: return SPLIT_TABLE_REGION_PRE_OPERATION;
+        case 3: return SPLIT_TABLE_REGION_CLOSE_PARENT_REGION;
+        case 4: return SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS;
+        case 5: return SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR;
+        case 6: return SPLIT_TABLE_REGION_UPDATE_META;
+        case 7: return SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR;
+        case 8: return SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS;
+        case 9: return SPLIT_TABLE_REGION_POST_OPERATION;
         default: return null;
       }
     }
 
-    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<MergeTableRegionsState>
+    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<SplitTableRegionState>
         internalGetValueMap() {
       return internalValueMap;
     }
     private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
-        MergeTableRegionsState> internalValueMap =
-          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<MergeTableRegionsState>() {
-            public MergeTableRegionsState findValueByNumber(int number) {
-              return MergeTableRegionsState.forNumber(number);
+        SplitTableRegionState> internalValueMap =
+          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<SplitTableRegionState>() {
+            public SplitTableRegionState findValueByNumber(int number) {
+              return SplitTableRegionState.forNumber(number);
             }
           };
 
@@ -1881,12 +1980,12 @@ public final class MasterProcedureProtos {
     }
     public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
         getDescriptor() {
-      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(14);
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(15);
     }
 
-    private static final MergeTableRegionsState[] VALUES = values();
+    private static final SplitTableRegionState[] VALUES = values();
 
-    public static MergeTableRegionsState valueOf(
+    public static SplitTableRegionState valueOf(
         org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
       if (desc.getType() != getDescriptor()) {
         throw new java.lang.IllegalArgumentException(
@@ -1897,100 +1996,116 @@ public final class MasterProcedureProtos {
 
     private final int value;
 
-    private MergeTableRegionsState(int value) {
+    private SplitTableRegionState(int value) {
       this.value = value;
     }
 
-    // @@protoc_insertion_point(enum_scope:hbase.pb.MergeTableRegionsState)
+    // @@protoc_insertion_point(enum_scope:hbase.pb.SplitTableRegionState)
   }
 
   /**
-   * Protobuf enum {@code hbase.pb.SplitTableRegionState}
+   * Protobuf enum {@code hbase.pb.MergeTableRegionsState}
    */
-  public enum SplitTableRegionState
+  public enum MergeTableRegionsState
       implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
     /**
-     * <code>SPLIT_TABLE_REGION_PREPARE = 1;</code>
+     * <code>MERGE_TABLE_REGIONS_PREPARE = 1;</code>
      */
-    SPLIT_TABLE_REGION_PREPARE(1),
+    MERGE_TABLE_REGIONS_PREPARE(1),
     /**
-     * <code>SPLIT_TABLE_REGION_PRE_OPERATION = 2;</code>
+     * <code>MERGE_TABLE_REGIONS_PRE_OPERATION = 2;</code>
      */
-    SPLIT_TABLE_REGION_PRE_OPERATION(2),
+    MERGE_TABLE_REGIONS_PRE_OPERATION(2),
+    /**
+     * <code>MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS = 3;</code>
+     */
+    MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS(3),
     /**
-     * <code>SPLIT_TABLE_REGION_SET_SPLITTING_TABLE_STATE = 3;</code>
+     * <code>MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION = 4;</code>
      */
-    SPLIT_TABLE_REGION_SET_SPLITTING_TABLE_STATE(3),
+    MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION(4),
     /**
-     * <code>SPLIT_TABLE_REGION_CLOSE_PARENT_REGION = 4;</code>
+     * <code>MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE = 5;</code>
      */
-    SPLIT_TABLE_REGION_CLOSE_PARENT_REGION(4),
+    MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE(5),
     /**
-     * <code>SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS = 5;</code>
+     * <code>MERGE_TABLE_REGIONS_CLOSE_REGIONS = 6;</code>
      */
-    SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS(5),
+    MERGE_TABLE_REGIONS_CLOSE_REGIONS(6),
     /**
-     * <code>SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR = 6;</code>
+     * <code>MERGE_TABLE_REGIONS_CREATE_MERGED_REGION = 7;</code>
      */
-    SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR(6),
+    MERGE_TABLE_REGIONS_CREATE_MERGED_REGION(7),
     /**
-     * <code>SPLIT_TABLE_REGION_UPDATE_META = 7;</code>
+     * <code>MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION = 8;</code>
      */
-    SPLIT_TABLE_REGION_UPDATE_META(7),
+    MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION(8),
     /**
-     * <code>SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR = 8;</code>
+     * <code>MERGE_TABLE_REGIONS_UPDATE_META = 9;</code>
      */
-    SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR(8),
+    MERGE_TABLE_REGIONS_UPDATE_META(9),
     /**
-     * <code>SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS = 9;</code>
+     * <code>MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION = 10;</code>
      */
-    SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS(9),
+    MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION(10),
     /**
-     * <code>SPLIT_TABLE_REGION_POST_OPERATION = 10;</code>
+     * <code>MERGE_TABLE_REGIONS_OPEN_MERGED_REGION = 11;</code>
      */
-    SPLIT_TABLE_REGION_POST_OPERATION(10),
+    MERGE_TABLE_REGIONS_OPEN_MERGED_REGION(11),
+    /**
+     * <code>MERGE_TABLE_REGIONS_POST_OPERATION = 12;</code>
+     */
+    MERGE_TABLE_REGIONS_POST_OPERATION(12),
     ;
 
     /**
-     * <code>SPLIT_TABLE_REGION_PREPARE = 1;</code>
+     * <code>MERGE_TABLE_REGIONS_PREPARE = 1;</code>
      */
-    public static final int SPLIT_TABLE_REGION_PREPARE_VALUE = 1;
+    public static final int MERGE_TABLE_REGIONS_PREPARE_VALUE = 1;
     /**
-     * <code>SPLIT_TABLE_REGION_PRE_OPERATION = 2;</code>
+     * <code>MERGE_TABLE_REGIONS_PRE_OPERATION = 2;</code>
      */
-    public static final int SPLIT_TABLE_REGION_PRE_OPERATION_VALUE = 2;
+    public static final int MERGE_TABLE_REGIONS_PRE_OPERATION_VALUE = 2;
     /**
-     * <code>SPLIT_TABLE_REGION_SET_SPLITTING_TABLE_STATE = 3;</code>
+     * <code>MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS = 3;</code>
      */
-    public static final int SPLIT_TABLE_REGION_SET_SPLITTING_TABLE_STATE_VALUE = 3;
+    public static final int MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS_VALUE = 3;
     /**
-     * <code>SPLIT_TABLE_REGION_CLOSE_PARENT_REGION = 4;</code>
+     * <code>MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION = 4;</code>
      */
-    public static final int SPLIT_TABLE_REGION_CLOSE_PARENT_REGION_VALUE = 4;
+    public static final int MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION_VALUE = 4;
     /**
-     * <code>SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS = 5;</code>
+     * <code>MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE = 5;</code>
      */
-    public static final int SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS_VALUE = 5;
+    public static final int MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE_VALUE = 5;
     /**
-     * <code>SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR = 6;</code>
+     * <code>MERGE_TABLE_REGIONS_CLOSE_REGIONS = 6;</code>
      */
-    public static final int SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR_VALUE = 6;
+    public static final int MERGE_TABLE_REGIONS_CLOSE_REGIONS_VALUE = 6;
     /**
-     * <code>SPLIT_TABLE_REGION_UPDATE_META = 7;</code>
+     * <code>MERGE_TABLE_REGIONS_CREATE_MERGED_REGION = 7;</code>
      */
-    public static final int SPLIT_TABLE_REGION_UPDATE_META_VALUE = 7;
+    public static final int MERGE_TABLE_REGIONS_CREATE_MERGED_REGION_VALUE = 7;
     /**
-     * <code>SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR = 8;</code>
+     * <code>MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION = 8;</code>
      */
-    public static final int SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR_VALUE = 8;
+    public static final int MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION_VALUE = 8;
     /**
-     * <code>SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS = 9;</code>
+     * <code>MERGE_TABLE_REGIONS_UPDATE_META = 9;</code>
      */
-    public static final int SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS_VALUE = 9;
+    public static final int MERGE_TABLE_REGIONS_UPDATE_META_VALUE = 9;
     /**
-     * <code>SPLIT_TABLE_REGION_POST_OPERATION = 10;</code>
+     * <code>MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION = 10;</code>
      */
-    public static final int SPLIT_TABLE_REGION_POST_OPERATION_VALUE = 10;
+    public static final int MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION_VALUE = 10;
+    /**
+     * <code>MERGE_TABLE_REGIONS_OPEN_MERGED_REGION = 11;</code>
+     */
+    public static final int MERGE_TABLE_REGIONS_OPEN_MERGED_REGION_VALUE = 11;
+    /**
+     * <code>MERGE_TABLE_REGIONS_POST_OPERATION = 12;</code>
+     */
+    public static final int MERGE_TABLE_REGIONS_POST_OPERATION_VALUE = 12;
 
 
     public final int getNumber() {
@@ -2001,35 +2116,37 @@ public final class MasterProcedureProtos {
      * @deprecated Use {@link #forNumber(int)} instead.
      */
     @java.lang.Deprecated
-    public static SplitTableRegionState valueOf(int value) {
+    public static MergeTableRegionsState valueOf(int value) {
       return forNumber(value);
     }
 
-    public static SplitTableRegionState forNumber(int value) {
+    public static MergeTableRegionsState forNumber(int value) {
       switch (value) {
-        case 1: return SPLIT_TABLE_REGION_PREPARE;
-        case 2: return SPLIT_TABLE_REGION_PRE_OPERATION;
-        case 3: return SPLIT_TABLE_REGION_SET_SPLITTING_TABLE_STATE;
-        case 4: return SPLIT_TABLE_REGION_CLOSE_PARENT_REGION;
-        case 5: return SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS;
-        case 6: return SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR;
-        case 7: return SPLIT_TABLE_REGION_UPDATE_META;
-        case 8: return SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR;
-        case 9: return SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS;
-        case 10: return SPLIT_TABLE_REGION_POST_OPERATION;
+        case 1: return MERGE_TABLE_REGIONS_PREPARE;
+        case 2: return MERGE_TABLE_REGIONS_PRE_OPERATION;
+        case 3: return MERGE_TABLE_REGIONS_MOVE_REGION_TO_SAME_RS;
+        case 4: return MERGE_TABLE_REGIONS_PRE_MERGE_OPERATION;
+        case 5: return MERGE_TABLE_REGIONS_SET_MERGING_TABLE_STATE;
+        case 6: return MERGE_TABLE_REGIONS_CLOSE_REGIONS;
+        case 7: return MERGE_TABLE_REGIONS_CREATE_MERGED_REGION;
+        case 8: return MERGE_TABLE_REGIONS_PRE_MERGE_COMMIT_OPERATION;
+        case 9: return MERGE_TABLE_REGIONS_UPDATE_META;
+        case 10: return MERGE_TABLE_REGIONS_POST_MERGE_COMMIT_OPERATION;
+        case 11: return MERGE_TABLE_REGIONS_OPEN_MERGED_REGION;
+        case 12: return MERGE_TABLE_REGIONS_POST_OPERATION;
         default: return null;
       }
     }
 
-    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<SplitTableRegionState>
+    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<MergeTableRegionsState>
         internalGetValueMap() {
       return internalValueMap;
     }
     private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
-        SplitTableRegionState> internalValueMap =
-          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<SplitTableRegionState>() {
-            public SplitTableRegionState findValueByNumber(int number) {
-              return SplitTableRegionState.forNumber(number);
+        MergeTableRegionsState> internalValueMap =
+          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<MergeTableRegionsState>() {
+            public MergeTableRegionsState findValueByNumber(int number) {
+              return MergeTableRegionsState.forNumber(number);
             }
           };
 
@@ -2043,12 +2160,12 @@ public final class MasterProcedureProtos {
     }
     public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
         getDescriptor() {
-      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(15);
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(16);
     }
 
-    private static final SplitTableRegionState[] VALUES = values();
+    private static final MergeTableRegionsState[] VALUES = values();
 
-    public static SplitTableRegionState valueOf(
+    public static MergeTableRegionsState valueOf(
         org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
       if (desc.getType() != getDescriptor()) {
         throw new java.lang.IllegalArgumentException(
@@ -2059,11 +2176,11 @@ public final class MasterProcedureProtos {
 
     private final int value;
 
-    private SplitTableRegionState(int value) {
+    private MergeTableRegionsState(int value) {
       this.value = value;
     }
 
-    // @@protoc_insertion_point(enum_scope:hbase.pb.SplitTableRegionState)
+    // @@protoc_insertion_point(enum_scope:hbase.pb.MergeTableRegionsState)
   }
 
   /**
@@ -2204,7 +2321,7 @@ public final class MasterProcedureProtos {
     }
     public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
         getDescriptor() {
-      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(16);
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(17);
     }
 
     private static final ServerCrashState[] VALUES = values();
@@ -2227,59 +2344,446 @@ public final class MasterProcedureProtos {
     // @@protoc_insertion_point(enum_scope:hbase.pb.ServerCrashState)
   }
 
-  public interface CreateTableStateDataOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:hbase.pb.CreateTableStateData)
-      org.apache.hadoop.hbase.shaded.com.google.protobuf.MessageOrBuilder {
-
+  /**
+   * Protobuf enum {@code hbase.pb.RegionTransitionState}
+   */
+  public enum RegionTransitionState
+      implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
     /**
-     * <code>required .hbase.pb.UserInformation user_info = 1;</code>
+     * <code>REGION_TRANSITION_QUEUE = 1;</code>
      */
-    boolean hasUserInfo();
+    REGION_TRANSITION_QUEUE(1),
     /**
-     * <code>required .hbase.pb.UserInformation user_info = 1;</code>
+     * <code>REGION_TRANSITION_DISPATCH = 2;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.UserInformation getUserInfo();
+    REGION_TRANSITION_DISPATCH(2),
     /**
-     * <code>required .hbase.pb.UserInformation user_info = 1;</code>
+     * <code>REGION_TRANSITION_FINISH = 3;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.UserInformationOrBuilder getUserInfoOrBuilder();
+    REGION_TRANSITION_FINISH(3),
+    ;
 
     /**
-     * <code>required .hbase.pb.TableSchema table_schema = 2;</code>
+     * <code>REGION_TRANSITION_QUEUE = 1;</code>
      */
-    boolean hasTableSchema();
+    public static final int REGION_TRANSITION_QUEUE_VALUE = 1;
     /**
-     * <code>required .hbase.pb.TableSchema table_schema = 2;</code>
+     * <code>REGION_TRANSITION_DISPATCH = 2;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema getTableSchema();
+    public static final int REGION_TRANSITION_DISPATCH_VALUE = 2;
     /**
-     * <code>required .hbase.pb.TableSchema table_schema = 2;</code>
+     * <code>REGION_TRANSITION_FINISH = 3;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchemaOrBuilder getTableSchemaOrBuilder();
+    public static final int REGION_TRANSITION_FINISH_VALUE = 3;
+
+
+    public final int getNumber() {
+      return value;
+    }
 
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     * @deprecated Use {@link #forNumber(int)} instead.
      */
-    java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo> 
-        getRegionInfoList();
+    @java.lang.Deprecated
+    public static RegionTransitionState valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static RegionTransitionState forNumber(int value) {
+      switch (value) {
+        case 1: return REGION_TRANSITION_QUEUE;
+        case 2: return REGION_TRANSITION_DISPATCH;
+        case 3: return REGION_TRANSITION_FINISH;
+        default: return null;
+      }
+    }
+
+    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<RegionTransitionState>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+        RegionTransitionState> internalValueMap =
+          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<RegionTransitionState>() {
+            public RegionTransitionState findValueByNumber(int number) {
+              return RegionTransitionState.forNumber(number);
+            }
+          };
+
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(18);
+    }
+
+    private static final RegionTransitionState[] VALUES = values();
+
+    public static RegionTransitionState valueOf(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private RegionTransitionState(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:hbase.pb.RegionTransitionState)
+  }
+
+  /**
+   * Protobuf enum {@code hbase.pb.MoveRegionState}
+   */
+  public enum MoveRegionState
+      implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     * <code>MOVE_REGION_UNASSIGN = 1;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo getRegionInfo(int index);
+    MOVE_REGION_UNASSIGN(1),
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     * <code>MOVE_REGION_ASSIGN = 2;</code>
      */
-    int getRegionInfoCount();
+    MOVE_REGION_ASSIGN(2),
+    ;
+
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     * <code>MOVE_REGION_UNASSIGN = 1;</code>
      */
-    java.util.List<? extends org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder> 
-        getRegionInfoOrBuilderList();
+    public static final int MOVE_REGION_UNASSIGN_VALUE = 1;
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     * <code>MOVE_REGION_ASSIGN = 2;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder getRegionInfoOrBuilder(
-        int index);
+    public static final int MOVE_REGION_ASSIGN_VALUE = 2;
+
+
+    public final int getNumber() {
+      return value;
+    }
+
+    /**
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static MoveRegionState valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static MoveRegionState forNumber(int value) {
+      switch (value) {
+        case 1: return MOVE_REGION_UNASSIGN;
+        case 2: return MOVE_REGION_ASSIGN;
+        default: return null;
+      }
+    }
+
+    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<MoveRegionState>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+        MoveRegionState> internalValueMap =
+          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<MoveRegionState>() {
+            public MoveRegionState findValueByNumber(int number) {
+              return MoveRegionState.forNumber(number);
+            }
+          };
+
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(19);
+    }
+
+    private static final MoveRegionState[] VALUES = values();
+
+    public static MoveRegionState valueOf(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private MoveRegionState(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:hbase.pb.MoveRegionState)
+  }
+
+  /**
+   * Protobuf enum {@code hbase.pb.GCRegionState}
+   */
+  public enum GCRegionState
+      implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>GC_REGION_PREPARE = 1;</code>
+     */
+    GC_REGION_PREPARE(1),
+    /**
+     * <code>GC_REGION_ARCHIVE = 2;</code>
+     */
+    GC_REGION_ARCHIVE(2),
+    /**
+     * <code>GC_REGION_PURGE_METADATA = 3;</code>
+     */
+    GC_REGION_PURGE_METADATA(3),
+    ;
+
+    /**
+     * <code>GC_REGION_PREPARE = 1;</code>
+     */
+    public static final int GC_REGION_PREPARE_VALUE = 1;
+    /**
+     * <code>GC_REGION_ARCHIVE = 2;</code>
+     */
+    public static final int GC_REGION_ARCHIVE_VALUE = 2;
+    /**
+     * <code>GC_REGION_PURGE_METADATA = 3;</code>
+     */
+    public static final int GC_REGION_PURGE_METADATA_VALUE = 3;
+
+
+    public final int getNumber() {
+      return value;
+    }
+
+    /**
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static GCRegionState valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static GCRegionState forNumber(int value) {
+      switch (value) {
+        case 1: return GC_REGION_PREPARE;
+        case 2: return GC_REGION_ARCHIVE;
+        case 3: return GC_REGION_PURGE_METADATA;
+        default: return null;
+      }
+    }
+
+    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<GCRegionState>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+        GCRegionState> internalValueMap =
+          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<GCRegionState>() {
+            public GCRegionState findValueByNumber(int number) {
+              return GCRegionState.forNumber(number);
+            }
+          };
+
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(20);
+    }
+
+    private static final GCRegionState[] VALUES = values();
+
+    public static GCRegionState valueOf(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private GCRegionState(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:hbase.pb.GCRegionState)
+  }
+
+  /**
+   * Protobuf enum {@code hbase.pb.GCMergedRegionsState}
+   */
+  public enum GCMergedRegionsState
+      implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>GC_MERGED_REGIONS_PREPARE = 1;</code>
+     */
+    GC_MERGED_REGIONS_PREPARE(1),
+    /**
+     * <code>GC_MERGED_REGIONS_PURGE = 2;</code>
+     */
+    GC_MERGED_REGIONS_PURGE(2),
+    /**
+     * <code>GC_REGION_EDIT_METADATA = 3;</code>
+     */
+    GC_REGION_EDIT_METADATA(3),
+    ;
+
+    /**
+     * <code>GC_MERGED_REGIONS_PREPARE = 1;</code>
+     */
+    public static final int GC_MERGED_REGIONS_PREPARE_VALUE = 1;
+    /**
+     * <code>GC_MERGED_REGIONS_PURGE = 2;</code>
+     */
+    public static final int GC_MERGED_REGIONS_PURGE_VALUE = 2;
+    /**
+     * <code>GC_REGION_EDIT_METADATA = 3;</code>
+     */
+    public static final int GC_REGION_EDIT_METADATA_VALUE = 3;
+
+
+    public final int getNumber() {
+      return value;
+    }
+
+    /**
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static GCMergedRegionsState valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static GCMergedRegionsState forNumber(int value) {
+      switch (value) {
+        case 1: return GC_MERGED_REGIONS_PREPARE;
+        case 2: return GC_MERGED_REGIONS_PURGE;
+        case 3: return GC_REGION_EDIT_METADATA;
+        default: return null;
+      }
+    }
+
+    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<GCMergedRegionsState>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+        GCMergedRegionsState> internalValueMap =
+          new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<GCMergedRegionsState>() {
+            public GCMergedRegionsState findValueByNumber(int number) {
+              return GCMergedRegionsState.forNumber(number);
+            }
+          };
+
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.getDescriptor().getEnumTypes().get(21);
+    }
+
+    private static final GCMergedRegionsState[] VALUES = values();
+
+    public static GCMergedRegionsState valueOf(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private GCMergedRegionsState(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:hbase.pb.GCMergedRegionsState)
+  }
+
+  public interface CreateTableStateDataOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:hbase.pb.CreateTableStateData)
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>required .hbase.pb.UserInformation user_info = 1;</code>
+     */
+    boolean hasUserInfo();
+    /**
+     * <code>required .hbase.pb.UserInformation user_info = 1;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.UserInformation getUserInfo();
+    /**
+     * <code>required .hbase.pb.UserInformation user_info = 1;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.UserInformationOrBuilder getUserInfoOrBuilder();
+
+    /**
+     * <code>required .hbase.pb.TableSchema table_schema = 2;</code>
+     */
+    boolean hasTableSchema();
+    /**
+     * <code>required .hbase.pb.TableSchema table_schema = 2;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema getTableSchema();
+    /**
+     * <code>required .hbase.pb.TableSchema table_schema = 2;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchemaOrBuilder getTableSchemaOrBuilder();
+
+    /**
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     */
+    java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo> 
+        getRegionInfoList();
+    /**
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo getRegionInfo(int index);
+    /**
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     */
+    int getRegionInfoCount();
+    /**
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     */
+    java.util.List<? extends org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder> 
+        getRegionInfoOrBuilderList();
+    /**
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder getRegionInfoOrBuilder(
+        int index);
   }
   /**
    * Protobuf type {@code hbase.pb.CreateTableStateData}
@@ -16721,7 +17225,7 @@ public final class MasterProcedureProtos {
        * <code>required .hbase.pb.SnapshotDescription snapshot = 2;</code>
        */
       private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
-          org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription, org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescriptionOrBuilder>
+          org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription, org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescriptionOrBuilder> 
           getSnapshotFieldBuilder() {
         if (snapshotBuilder_ == null) {
           snapshotBuilder_ = new org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
@@ -18771,7 +19275,7 @@ public final class MasterProcedureProtos {
        * <code>required .hbase.pb.SnapshotDescription snapshot = 2;</code>
        */
       private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
-          org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription, org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescriptionOrBuilder>
+          org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription, org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescriptionOrBuilder> 
           getSnapshotFieldBuilder() {
         if (snapshotBuilder_ == null) {
           snapshotBuilder_ = new org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
@@ -19910,8 +20414,8 @@ public final class MasterProcedureProtos {
 
   }
 
-  public interface MergeTableRegionsStateDataOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:hbase.pb.MergeTableRegionsStateData)
+  public interface DispatchMergingRegionsStateDataOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:hbase.pb.DispatchMergingRegionsStateData)
       org.apache.hadoop.hbase.shaded.com.google.protobuf.MessageOrBuilder {
 
     /**
@@ -19928,63 +20432,63 @@ public final class MasterProcedureProtos {
     org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.UserInformationOrBuilder getUserInfoOrBuilder();
 
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>required .hbase.pb.TableName table_name = 2;</code>
      */
-    java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo> 
-        getRegionInfoList();
+    boolean hasTableName();
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>required .hbase.pb.TableName table_name = 2;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo getRegionInfo(int index);
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName getTableName();
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>required .hbase.pb.TableName table_name = 2;</code>
      */
-    int getRegionInfoCount();
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder getTableNameOrBuilder();
+
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
-    java.util.List<? extends org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder> 
-        getRegionInfoOrBuilderList();
+    java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo> 
+        getRegionInfoList();
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder getRegionInfoOrBuilder(
-        int index);
-
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo getRegionInfo(int index);
     /**
-     * <code>required .hbase.pb.RegionInfo merged_region_info = 3;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
-    boolean hasMergedRegionInfo();
+    int getRegionInfoCount();
     /**
-     * <code>required .hbase.pb.RegionInfo merged_region_info = 3;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo getMergedRegionInfo();
+    java.util.List<? extends org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder> 
+        getRegionInfoOrBuilderList();
     /**
-     * <code>required .hbase.pb.RegionInfo merged_region_info = 3;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
-    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder getMergedRegionInfoOrBuilder();
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder getRegionInfoOrBuilder(
+        int index);
 
     /**
-     * <code>optional bool forcible = 4 [default = false];</code>
+     * <code>optional bool forcible = 4;</code>
      */
     boolean hasForcible();
     /**
-     * <code>optional bool forcible = 4 [default = false];</code>
+     * <code>optional bool forcible = 4;</code>
      */
     boolean getForcible();
   }
   /**
-   * Protobuf type {@code hbase.pb.MergeTableRegionsStateData}
+   * Protobuf type {@code hbase.pb.DispatchMergingRegionsStateData}
    */
-  public  static final class MergeTableRegionsStateData extends
+  public  static final class DispatchMergingRegionsStateData extends
       org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:hbase.pb.MergeTableRegionsStateData)
-      MergeTableRegionsStateDataOrBuilder {
-    // Use MergeTableRegionsStateData.newBuilder() to construct.
-    private MergeTableRegionsStateData(org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      // @@protoc_insertion_point(message_implements:hbase.pb.DispatchMergingRegionsStateData)
+      DispatchMergingRegionsStateDataOrBuilder {
+    // Use DispatchMergingRegionsStateData.newBuilder() to construct.
+    private DispatchMergingRegionsStateData(org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
       super(builder);
     }
-    private MergeTableRegionsStateData() {
+    private DispatchMergingRegionsStateData() {
       regionInfo_ = java.util.Collections.emptyList();
       forcible_ = false;
     }
@@ -19994,7 +20498,7 @@ public final class MasterProcedureProtos {
     getUnknownFields() {
       return this.unknownFields;
     }
-    private MergeTableRegionsStateData(
+    private DispatchMergingRegionsStateData(
         org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
         org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
@@ -20031,27 +20535,27 @@ public final class MasterProcedureProtos {
               break;
             }
             case 18: {
-              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
-                regionInfo_ = new java.util.ArrayList<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo>();
-                mutable_bitField0_ |= 0x00000002;
-              }
-              regionInfo_.add(
-                  input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo.PARSER, extensionRegistry));
-              break;
-            }
-            case 26: {
-              org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo.Builder subBuilder = null;
+              org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.Builder subBuilder = null;
               if (((bitField0_ & 0x00000002) == 0x00000002)) {
-                subBuilder = mergedRegionInfo_.toBuilder();
+                subBuilder = tableName_.toBuilder();
               }
-              mergedRegionInfo_ = input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo.PARSER, extensionRegistry);
+              tableName_ = input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.PARSER, extensionRegistry);
               if (subBuilder != null) {
-                subBuilder.mergeFrom(mergedRegionInfo_);
-                mergedRegionInfo_ = subBuilder.buildPartial();
+                subBuilder.mergeFrom(tableName_);
+                tableName_ = subBuilder.buildPartial();
               }
               bitField0_ |= 0x00000002;
               break;
             }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
+                regionInfo_ = new java.util.ArrayList<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo>();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              regionInfo_.add(
+                  input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo.PARSER, extensionRegistry));
+              break;
+            }
             case 32: {
               bitField0_ |= 0x00000004;
               forcible_ = input.readBool();
@@ -20065,7 +20569,7 @@ public final class MasterProcedureProtos {
         throw new org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
+        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
           regionInfo_ = java.util.Collections.unmodifiableList(regionInfo_);
         }
         this.unknownFields = unknownFields.build();
@@ -20074,14 +20578,14 @@ public final class MasterProcedureProtos {
     }
     public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_MergeTableRegionsStateData_descriptor;
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_DispatchMergingRegionsStateData_descriptor;
     }
 
     protected org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_MergeTableRegionsStateData_fieldAccessorTable
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_DispatchMergingRegionsStateData_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData.class, org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData.Builder.class);
+              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData.class, org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData.Builder.class);
     }
 
     private int bitField0_;
@@ -20106,72 +20610,72 @@ public final class MasterProcedureProtos {
       return userInfo_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.UserInformation.getDefaultInstance() : userInfo_;
     }
 
-    public static final int REGION_INFO_FIELD_NUMBER = 2;
+    public static final int TABLE_NAME_FIELD_NUMBER = 2;
+    private org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName tableName_;
+    /**
+     * <code>required .hbase.pb.TableName table_name = 2;</code>
+     */
+    public boolean hasTableName() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>required .hbase.pb.TableName table_name = 2;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName getTableName() {
+      return tableName_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance() : tableName_;
+    }
+    /**
+     * <code>required .hbase.pb.TableName table_name = 2;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder getTableNameOrBuilder() {
+      return tableName_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance() : tableName_;
+    }
+
+    public static final int REGION_INFO_FIELD_NUMBER = 3;
     private java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo> regionInfo_;
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
     public java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo> getRegionInfoList() {
       return regionInfo_;
     }
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
     public java.util.List<? extends org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder> 
         getRegionInfoOrBuilderList() {
       return regionInfo_;
     }
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
     public int getRegionInfoCount() {
       return regionInfo_.size();
     }
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
     public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo getRegionInfo(int index) {
       return regionInfo_.get(index);
     }
     /**
-     * <code>repeated .hbase.pb.RegionInfo region_info = 2;</code>
+     * <code>repeated .hbase.pb.RegionInfo region_info = 3;</code>
      */
     public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder getRegionInfoOrBuilder(
         int index) {
       return regionInfo_.get(index);
     }
 
-    public static final int MERGED_REGION_INFO_FIELD_NUMBER = 3;
-    private org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo mergedRegionInfo_;
-    /**
-     * <code>required .hbase.pb.RegionInfo merged_region_info = 3;</code>
-     */
-    public boolean hasMergedRegionInfo() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    /**
-     * <code>required .hbase.pb.RegionInfo merged_region_info = 3;</code>
-     */
-    public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo getMergedRegionInfo() {
-      return mergedRegionInfo_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo.getDefaultInstance() : mergedRegionInfo_;
-    }
-    /**
-     * <code>required .hbase.pb.RegionInfo merged_region_info = 3;</code>
-     */
-    public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfoOrBuilder getMergedRegionInfoOrBuilder() {
-      return mergedRegionInfo_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo.getDefaultInstance() : mergedRegionInfo_;
-    }
-
     public static final int FORCIBLE_FIELD_NUMBER = 4;
     private boolean forcible_;
     /**
-     * <code>optional bool forcible = 4 [default = false];</code>
+     * <code>optional bool forcible = 4;</code>
      */
     public boolean hasForcible() {
       return ((bitField0_ & 0x00000004) == 0x00000004);
     }
     /**
-     * <code>optional bool forcible = 4 [default = false];</code>
+     * <code>optional bool forcible = 4;</code>
      */
     public boolean getForcible() {
       return forcible_;
@@ -20187,7 +20691,7 @@ public final class MasterProcedureProtos {
         memoizedIsInitialized = 0;
         return false;
       }
-      if (!hasMergedRegionInfo()) {
+      if (!hasTableName()) {
         memoizedIsInitialized = 0;
         return false;
       }
@@ -20195,16 +20699,16 @@ public final class MasterProcedureProtos {
         memoizedIsInitialized = 0;
         return false;
       }
+      if (!getTableName().isInitialized()) {
+        memoizedIsInitialized = 0;
+        return false;
+      }
       for (int i = 0; i < getRegionInfoCount(); i++) {
         if (!getRegionInfo(i).isInitialized()) {
           memoizedIsInitialized = 0;
           return false;
         }
       }
-      if (!getMergedRegionInfo().isInitialized()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
       memoizedIsInitialized = 1;
       return true;
     }
@@ -20214,11 +20718,11 @@ public final class MasterProcedureProtos {
       if (((bitField0_ & 0x00000001) == 0x00000001)) {
         output.writeMessage(1, getUserInfo());
       }
-      for (int i = 0; i < regionInfo_.size(); i++) {
-        output.writeMessage(2, regionInfo_.get(i));
-      }
       if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeMessage(3, getMergedRegionInfo());
+        output.writeMessage(2, getTableName());
+      }
+      for (int i = 0; i < regionInfo_.size(); i++) {
+        output.writeMessage(3, regionInfo_.get(i));
       }
       if (((bitField0_ & 0x00000004) == 0x00000004)) {
         output.writeBool(4, forcible_);
@@ -20235,13 +20739,13 @@ public final class MasterProcedureProtos {
         size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, getUserInfo());
       }
-      for (int i = 0; i < regionInfo_.size(); i++) {
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
         size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
-          .computeMessageSize(2, regionInfo_.get(i));
+          .computeMessageSize(2, getTableName());
       }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+      for (int i = 0; i < regionInfo_.size(); i++) {
         size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, getMergedRegionInfo());
+          .computeMessageSize(3, regionInfo_.get(i));
       }
       if (((bitField0_ & 0x00000004) == 0x00000004)) {
         size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
@@ -20258,10 +20762,10 @@ public final class MasterProcedureProtos {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData)) {
+      if (!(obj instanceof org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData)) {
         return super.equals(obj);
       }
-      org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData other = (org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData) obj;
+      org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData other = (org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData) obj;
 
       boolean result = true;
       result = result && (hasUserInfo() == other.hasUserInfo());
@@ -20269,13 +20773,13 @@ public final class MasterProcedureProtos {
         result = result && getUserInfo()
             .equals(other.getUserInfo());
       }
+      result = result && (hasTableName() == other.hasTableName());
+      if (hasTableName()) {
+        result = result && getTableName()
+            .equals(other.getTableName());
+      }
       result = result && getRegionInfoList()
           .equals(other.getRegionInfoList());
-      result = result && (hasMergedRegionInfo() == other.hasMergedRegionInfo());
-      if (hasMergedRegionInfo()) {
-        result = result && getMergedRegionInfo()
-            .equals(other.getMergedRegionInfo());
-      }
       result = result && (hasForcible() == other.hasForcible());
       if (hasForcible()) {
         result = result && (getForcible()
@@ -20296,14 +20800,14 @@ public final class MasterProcedureProtos {
         hash = (37 * hash) + USER_INFO_FIELD_NUMBER;
         hash = (53 * hash) + getUserInfo().hashCode();
       }
+      if (hasTableName()) {
+        hash = (37 * hash) + TABLE_NAME_FIELD_NUMBER;
+        hash = (53 * hash) + getTableName().hashCode();
+      }
       if (getRegionInfoCount() > 0) {
         hash = (37 * hash) + REGION_INFO_FIELD_NUMBER;
         hash = (53 * hash) + getRegionInfoList().hashCode();
       }
-      if (hasMergedRegionInfo()) {
-        hash = (37 * hash) + MERGED_REGION_INFO_FIELD_NUMBER;
-        hash = (53 * hash) + getMergedRegionInfo().hashCode();
-      }
       if (hasForcible()) {
         hash = (37 * hash) + FORCIBLE_FIELD_NUMBER;
         hash = (53 * hash) + org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.hashBoolean(
@@ -20314,58 +20818,58 @@ public final class MasterProcedureProtos {
       return hash;
     }
 
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseFrom(
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseFrom(
         org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data)
         throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseFrom(
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseFrom(
         org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data,
         org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseFrom(byte[] data)
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseFrom(byte[] data)
         throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseFrom(
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseFrom(
         byte[] data,
         org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseFrom(java.io.InputStream input)
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseFrom(
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseFrom(
         java.io.InputStream input,
         org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseDelimitedFrom(java.io.InputStream input)
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseDelimitedFrom(
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseDelimitedFrom(
         java.io.InputStream input,
         org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseFrom(
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseFrom(
         org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input);
     }
-    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parseFrom(
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parseFrom(
         org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
         org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -20377,7 +20881,7 @@ public final class MasterProcedureProtos {
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData prototype) {
+    public static Builder newBuilder(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     public Builder toBuilder() {
@@ -20392,25 +20896,25 @@ public final class MasterProcedureProtos {
       return builder;
     }
     /**
-     * Protobuf type {@code hbase.pb.MergeTableRegionsStateData}
+     * Protobuf type {@code hbase.pb.DispatchMergingRegionsStateData}
      */
     public static final class Builder extends
         org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:hbase.pb.MergeTableRegionsStateData)
-        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateDataOrBuilder {
+        // @@protoc_insertion_point(builder_implements:hbase.pb.DispatchMergingRegionsStateData)
+        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateDataOrBuilder {
       public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_MergeTableRegionsStateData_descriptor;
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_DispatchMergingRegionsStateData_descriptor;
       }
 
       protected org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_MergeTableRegionsStateData_fieldAccessorTable
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_DispatchMergingRegionsStateData_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData.class, org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData.Builder.class);
+                org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData.class, org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData.Builder.class);
       }
 
-      // Construct using org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData.newBuilder()
+      // Construct using org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -20424,8 +20928,8 @@ public final class MasterProcedureProtos {
         if (org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
           getUserInfoFieldBuilder();
+          getTableNameFieldBuilder();
           getRegionInfoFieldBuilder();
-          getMergedRegionInfoFieldBuilder();
         }
       }
       public Builder clear() {
@@ -20436,18 +20940,18 @@ public final class MasterProcedureProtos {
           userInfoBuilder_.clear();
         }
         bitField0_ = (bitField0_ & ~0x00000001);
+        if (tableNameBuilder_ == null) {
+          tableName_ = null;
+        } else {
+          tableNameBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
         if (regionInfoBuilder_ == null) {
           regionInfo_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000002);
+          bitField0_ = (bitField0_ & ~0x00000004);
         } else {
           regionInfoBuilder_.clear();
         }
-        if (mergedRegionInfoBuilder_ == null) {
-          mergedRegionInfo_ = null;
-        } else {
-          mergedRegionInfoBuilder_.clear();
-        }
-        bitField0_ = (bitField0_ & ~0x00000004);
         forcible_ = false;
         bitField0_ = (bitField0_ & ~0x00000008);
         return this;
@@ -20455,23 +20959,23 @@ public final class MasterProcedureProtos {
 
       public org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_MergeTableRegionsStateData_descriptor;
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.internal_static_hbase_pb_DispatchMergingRegionsStateData_descriptor;
       }
 
-      public org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData getDefaultInstanceForType() {
-        return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData.getDefaultInstance();
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData getDefaultInstanceForType() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData.getDefaultInstance();
       }
 
-      public org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData build() {
-        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData result = buildPartial();
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData build() {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
         return result;
       }
 
-      public org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData buildPartial() {
-        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData result = new org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData(this);
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData buildPartial() {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData result = new org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData(this);
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
@@ -20482,23 +20986,23 @@ public final class MasterProcedureProtos {
         } else {
           result.userInfo_ = userInfoBuilder_.build();
         }
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        if (tableNameBuilder_ == null) {
+          result.tableName_ = tableName_;
+        } else {
+          result.tableName_ = tableNameBuilder_.build();
+        }
         if (regionInfoBuilder_ == null) {
-          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
             regionInfo_ = java.util.Collections.unmodifiableList(regionInfo_);
-            bitField0_ = (bitField0_ & ~0x00000002);
+            bitField0_ = (bitField0_ & ~0x00000004);
           }
           result.regionInfo_ = regionInfo_;
         } else {
           result.regionInfo_ = regionInfoBuilder_.build();
         }
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        if (mergedRegionInfoBuilder_ == null) {
-          result.mergedRegionInfo_ = mergedRegionInfo_;
-        } else {
-          result.mergedRegionInfo_ = mergedRegionInfoBuilder_.build();
-        }
         if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
           to_bitField0_ |= 0x00000004;
         }
@@ -20535,24 +21039,27 @@ public final class MasterProcedureProtos {
         return (Builder) super.addRepeatedField(field, value);
       }
       public Builder mergeFrom(org.apache.hadoop.hbase.shaded.com.google.protobuf.Message other) {
-        if (other instanceof org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData) {
-          return mergeFrom((org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData)other);
+        if (other instanceof org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData) {
+          return mergeFrom((org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData other) {
-        if (other == org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData.getDefaultInstance()) return this;
+      public Builder mergeFrom(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData other) {
+        if (other == org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData.getDefaultInstance()) return this;
         if (other.hasUserInfo()) {
           mergeUserInfo(other.getUserInfo());
         }
+        if (other.hasTableName()) {
+          mergeTableName(other.getTableName());
+        }
         if (regionInfoBuilder_ == null) {
           if (!other.regionInfo_.isEmpty()) {
             if (regionInfo_.isEmpty()) {
               regionInfo_ = other.regionInfo_;
-              bitField0_ = (bitField0_ & ~0x00000002);
+              bitField0_ = (bitField0_ & ~0x00000004);
             } else {
               ensureRegionInfoIsMutable();
               regionInfo_.addAll(other.regionInfo_);
@@ -20565,7 +21072,7 @@ public final class MasterProcedureProtos {
               regionInfoBuilder_.dispose();
               regionInfoBuilder_ = null;
               regionInfo_ = other.regionInfo_;
-              bitField0_ = (bitField0_ & ~0x00000002);
+              bitField0_ = (bitField0_ & ~0x00000004);
               regionInfoBuilder_ = 
                 org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                    getRegionInfoFieldBuilder() : null;
@@ -20574,9 +21081,6 @@ public final class MasterProcedureProtos {
             }
           }
         }
-        if (other.hasMergedRegionInfo()) {
-          mergeMergedRegionInfo(other.getMergedRegionInfo());
-        }
         if (other.hasForcible()) {
           setForcible(other.getForcible());
         }
@@ -20589,20 +21093,20 @@ public final class MasterProcedureProtos {
         if (!hasUserInfo()) {
           return false;
         }
-        if (!hasMergedRegionInfo()) {
+        if (!hasTableName()) {
           return false;
         }
         if (!getUserInfo().isInitialized()) {
           return false;
         }
+        if (!getTableName().isInitialized()) {
+          return false;
+        }
         for (int i = 0; i < getRegionInfoCount(); i++) {
           if (!getRegionInfo(i).isInitialized()) {
             return false;
           }
         }
-        if (!getMergedRegionInfo().isInitialized()) {
-          return false;
-        }
         return true;
       }
 
@@ -20610,11 +21114,11 @@ public final class MasterProcedureProtos {
           org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
           org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData parsedMessage = null;
+        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.MergeTableRegionsStateData) e.getUnfinishedMessage();
+          parsedMessage = (org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DispatchMergingRegionsStateData) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
           if (parsedMessage != null) {
@@ -20743,12 +21247,130 @@ public final class MasterProcedureProtos {
         return userInfoBuilder_;
       }
 
-      private java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo> regionInfo_ =
-        java.util.Collections.emptyList();
-      private void ensureRegionInfoIsMutable() {
-        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
+      private org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName tableName_ = null;
+      private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName, org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder> tableNameBuilder_;
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      public boolean hasTableName() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName getTableName() {
+        if (tableNameBuilder_ == null) {
+          return tableName_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance() : tableName_;
+        } else {
+          return tableNameBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      public Builder setTableName(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName value) {
+        if (tableNameBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          tableName_ = value;
+          onChanged();
+        } else {
+          tableNameBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      public Builder setTableName(
+          org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.Builder builderForValue) {
+        if (tableNameBuilder_ == null) {
+          tableName_ = builderForValue.build();
+          onChanged();
+        } else {
+          tableNameBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      public Builder mergeTableName(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName value) {
+        if (tableNameBuilder_ == null) {
+          if (((bitField0_ & 0x00000002) == 0x00000002) &&
+              tableName_ != null &&
+              tableName_ != org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance()) {
+            tableName_ =
+              org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.newBuilder(tableName_).mergeFrom(value).buildPartial();
+          } else {
+            tableName_ = value;
+          }
+          onChanged();
+        } else {
+          tableNameBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      public Builder clearTableName() {
+        if (tableNameBuilder_ == null) {
+          tableName_ = null;
+          onChanged();
+        } else {
+          tableNameBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.Builder getTableNameBuilder() {
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return getTableNameFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder getTableNameOrBuilder() {
+        if (tableNameBuilder_ != null) {
+          return tableNameBuilder_.getMessageOrBuilder();
+        } else {
+          return tableName_ == null ?
+              org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance() : tableName_;
+        }
+      }
+      /**
+       * <code>required .hbase.pb.TableName table_name = 2;</code>
+       */
+      private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName, org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder> 
+          getTableNameFieldBuilder() {
+        if (tableNameBuilder_ == n

<TRUNCATED>