@Override
    public void run() {
      try {
        for (int i = 0; i < 100; i++) {
          byte[] row = Bytes.toBytes("putRow" + i);
          Put put = new Put(row);
          put.addColumn(Bytes.toBytes("cf"), Bytes.toBytes(0), new byte[0]);
          latch.await();
          region.batchMutate(new Mutation[] { put });
          Thread.sleep(10);
        }

      } catch (Throwable t) {
        LOG.warn("Error happend when Increment: ", t);
      }
    }
Test for HBASE-17471.
<p>
MVCCPreAssign is added by HBASE-16698, but pre-assign mvcc is only used in put/delete path. Other
write paths like increment/append still assign mvcc in ringbuffer's consumer thread. If put and
increment are used parallel. Then seqid in WAL may not increase monotonically Disorder in wals
will lead to data loss.
<p>
This case use two thread to put and increment at the same time in a single region. Then check the
seqid in WAL. If seqid is wal is not monotonically increasing, this case will fail
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALMonotonicallyIncreasingSeqId.java