@Override
    protected void addNonSkipWALMutationsToWALEdit(
      final MiniBatchOperationInProgress<Mutation> miniBatchOp, WALEdit walEdit,
      List<ExtendedCell> cellsFromCP, Map<byte[], List<ExtendedCell>> familyCellMap) {
      super.addNonSkipWALMutationsToWALEdit(miniBatchOp, walEdit, cellsFromCP, familyCellMap);
      WALEdit walEditForReplicateIfExistsSkipWAL =
        miniBatchOp.getWalEditForReplicateIfExistsSkipWAL();
      if (walEditForReplicateIfExistsSkipWAL == null) {
        return;
      }
      /**
       * When walEditForReplicateIfExistsSkipWAL is not null,it means there exists SKIP_WAL
       * {@link Mutation} and we create a new {@link WALEdit} in
       * {@link MutationBatchOperation#cacheSkipWALMutationForReplicateRegionReplica} for
       * replicating to region replica, so here we also add non SKIP_WAL{@link Mutation}s to
       * walEditForReplicateIfExistsSkipWAL.
       */
      doAddCellsToWALEdit(walEditForReplicateIfExistsSkipWAL, cellsFromCP, familyCellMap);
    }
When there is a SKIP_WAL {@link Mutation},we create a new {@link WALEdit} for replicating
to region replica,first we fill the existing {@link WALEdit} to it and then add the
{@link Mutation} which is SKIP_WAL to it.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java