private Put processReplicationMarkerEntry(Cell cell) throws IOException {
    // If source is emitting replication marker rows but sink is not accepting them,
    // ignore the edits.
    if (!replicationSinkTrackerEnabled) {
      return null;
    }
    WALProtos.ReplicationMarkerDescriptor descriptor =
      WALProtos.ReplicationMarkerDescriptor.parseFrom(new ByteArrayInputStream(cell.getValueArray(),
        cell.getValueOffset(), cell.getValueLength()));
    Put put = new Put(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength());
    put.addColumn(REPLICATION_SINK_TRACKER_INFO_FAMILY, RS_COLUMN, cell.getTimestamp(),
      (Bytes.toBytes(descriptor.getRegionServerName())));
    put.addColumn(REPLICATION_SINK_TRACKER_INFO_FAMILY, WAL_NAME_COLUMN, cell.getTimestamp(),
      Bytes.toBytes(descriptor.getWalName()));
    put.addColumn(REPLICATION_SINK_TRACKER_INFO_FAMILY, TIMESTAMP_COLUMN, cell.getTimestamp(),
      Bytes.toBytes(cell.getTimestamp()));
    put.addColumn(REPLICATION_SINK_TRACKER_INFO_FAMILY, OFFSET_COLUMN, cell.getTimestamp(),
      Bytes.toBytes(descriptor.getOffset()));
    return put;
  }
Replicate this array of entries directly into the local cluster using the native client. Only
operates against raw protobuf type saving on a conversion from pb to pojo.
@param entries                    WAL entries to be replicated.
@param cells                      cell scanner for iteration.
@param replicationClusterId       Id which will uniquely identify source cluster FS client
                                  configurations in the replication configuration directory
@param sourceBaseNamespaceDirPath Path that point to the source cluster base namespace
                                  directory
@param sourceHFileArchiveDirPath  Path that point to the source cluster hfile archive directory
@throws IOException If failed to replicate the data
hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java