Class WALNode

  • All Implemented Interfaces:
    java.lang.AutoCloseable, org.apache.iotdb.consensus.common.DataSet, org.apache.iotdb.consensus.multileader.wal.ConsensusReqReader, FlushListener, IWALNode

    public class WALNode
    extends java.lang.Object
    implements IWALNode
    This class encapsulates IWALBuffer and CheckpointManager. If search is enabled, the order of search index should be protected by the upper layer, and the value should start from 1.
    • Field Detail

      • DEFAULT_SAFELY_DELETED_SEARCH_INDEX

        public static final long DEFAULT_SAFELY_DELETED_SEARCH_INDEX
        no multi-leader consensus, all insert nodes can be safely deleted
        See Also:
        Constant Field Values
    • Constructor Detail

      • WALNode

        public WALNode​(java.lang.String identifier,
                       java.lang.String logDirectory)
                throws java.io.FileNotFoundException
        Throws:
        java.io.FileNotFoundException
      • WALNode

        public WALNode​(java.lang.String identifier,
                       java.lang.String logDirectory,
                       long startFileVersion,
                       long startSearchIndex)
                throws java.io.FileNotFoundException
        Throws:
        java.io.FileNotFoundException
    • Method Detail

      • onMemTableCreated

        public void onMemTableCreated​(IMemTable memTable,
                                      java.lang.String targetTsFile)
        Description copied from interface: IWALNode
        Callback when memTable created
        Specified by:
        onMemTableCreated in interface IWALNode
      • deleteOutdatedFiles

        public void deleteOutdatedFiles()
        Delete outdated .wal files
      • setSafelyDeletedSearchIndex

        public void setSafelyDeletedSearchIndex​(long safelyDeletedSearchIndex)
        Specified by:
        setSafelyDeletedSearchIndex in interface org.apache.iotdb.consensus.multileader.wal.ConsensusReqReader
      • getReqIterator

        public org.apache.iotdb.consensus.multileader.wal.ConsensusReqReader.ReqIterator getReqIterator​(long startIndex)
        This iterator is not concurrency-safe, cannot read the current-writing wal file.
        Specified by:
        getReqIterator in interface org.apache.iotdb.consensus.multileader.wal.ConsensusReqReader
      • getCurrentSearchIndex

        public long getCurrentSearchIndex()
        Specified by:
        getCurrentSearchIndex in interface org.apache.iotdb.consensus.multileader.wal.ConsensusReqReader
      • getTotalSize

        public long getTotalSize()
        Specified by:
        getTotalSize in interface org.apache.iotdb.consensus.multileader.wal.ConsensusReqReader
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface IWALNode
      • getLogDirectory

        public java.io.File getLogDirectory()
      • rollWALFile

        public void rollWALFile()