code: public void checkpointStart()
    {
      if (_isWhileCheckpoint) {
        throw new IllegalStateException();
      }
      
      _isWhileCheckpoint = true;
      
      long sequence = ++_sequence;
      
      setSequence(sequence);
      
      byte []headerBuffer = _headerBuffer;
      BitsUtil.writeInt16(headerBuffer, 0, CHECKPOINT_START);
      writeImpl(headerBuffer, 0, 2);
      
      _lastCheckpointStart = _index - _startAddress;
    }
docs: Starts checkpoint processing. A checkpoint start changes the epoch
  ID for new journal entries, but does not yet close the previous epoch.
  
  Journal entries written between checkpointStart() and checkpointEnd()
  belong to the successor epoch.