@Override
  protected void serializeStateData(ProcedureStateSerializer serializer) throws IOException {
    super.serializeStateData(serializer);
    ModifyTableDescriptorStateData.Builder builder = ModifyTableDescriptorStateData.newBuilder()
      .setTableName(ProtobufUtil.toProtoTableName(tableName));
    if (modifiedTableDescriptor != null) {
      builder.setModifiedTableSchema(ProtobufUtil.toTableSchema(modifiedTableDescriptor));
    }
    serializer.serialize(builder.build());
  }
Sub class should implement this method to modify the table descriptor, such as storing the rs
group information.
<p/>
Since the migrating is asynchronouns, it is possible that users have already changed the rs
group for a table, in this case we do not need to modify the table descriptor any more, then
you could just return {@link Optional#empty()}.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableDescriptorProcedure.java