Class AbstractJournalUpdateTask
- java.lang.Object
-
- org.apache.activemq.artemis.core.journal.impl.AbstractJournalUpdateTask
-
- All Implemented Interfaces:
JournalReaderCallback
- Direct Known Subclasses:
JournalCompactor
public abstract class AbstractJournalUpdateTask extends java.lang.Object implements JournalReaderCallback
Super class for Journal maintenances such as clean up and Compactor
-
-
Field Summary
Fields Modifier and Type Field Description protected JournalFilecurrentFilestatic java.lang.StringFILE_COMPACT_CONTROLprotected SequentialFileFactoryfileFactoryprotected JournalFilesRepositoryfilesRepositoryprotected JournalImpljournalprotected java.util.List<JournalFile>newDataFilesprotected longnextOrderingIDprotected SequentialFilesequentialFile
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractJournalUpdateTask(SequentialFileFactory fileFactory, JournalImpl journal, JournalFilesRepository filesRepository, org.apache.activemq.artemis.utils.collections.ConcurrentLongHashSet recordsSnapshot, long nextOrderingID)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddToRecordsSnaptshot(long id)booleancontainsRecord(long id)voidflush()Write pending output into fileprotected org.apache.activemq.artemis.api.core.ActiveMQBuffergetWritingChannel()protected voidopenFile()static SequentialFilereadControlFile(SequentialFileFactory fileFactory, java.util.List<java.lang.String> dataFiles, java.util.List<java.lang.String> newFiles, java.util.List<org.apache.activemq.artemis.api.core.Pair<java.lang.String,java.lang.String>> renameFile)static SequentialFilewriteControlFile(SequentialFileFactory fileFactory, java.util.List<JournalFile> files, java.util.List<JournalFile> newFiles, java.util.List<org.apache.activemq.artemis.api.core.Pair<java.lang.String,java.lang.String>> renames)protected voidwriteEncoder(JournalInternalRecord record)protected voidwriteEncoder(JournalInternalRecord record, int txcounter)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.activemq.artemis.core.journal.impl.JournalReaderCallback
done, markAsDataFile, onReadAddRecord, onReadAddRecordTX, onReadCommitRecord, onReadDeleteRecord, onReadDeleteRecordTX, onReadEventRecord, onReadPrepareRecord, onReadRollbackRecord, onReadUpdateRecord, onReadUpdateRecordTX
-
-
-
-
Field Detail
-
FILE_COMPACT_CONTROL
public static final java.lang.String FILE_COMPACT_CONTROL
- See Also:
- Constant Field Values
-
journal
protected final JournalImpl journal
-
fileFactory
protected final SequentialFileFactory fileFactory
-
currentFile
protected JournalFile currentFile
-
sequentialFile
protected SequentialFile sequentialFile
-
filesRepository
protected final JournalFilesRepository filesRepository
-
nextOrderingID
protected long nextOrderingID
-
newDataFiles
protected final java.util.List<JournalFile> newDataFiles
-
-
Constructor Detail
-
AbstractJournalUpdateTask
protected AbstractJournalUpdateTask(SequentialFileFactory fileFactory, JournalImpl journal, JournalFilesRepository filesRepository, org.apache.activemq.artemis.utils.collections.ConcurrentLongHashSet recordsSnapshot, long nextOrderingID)
-
-
Method Detail
-
writeControlFile
public static SequentialFile writeControlFile(SequentialFileFactory fileFactory, java.util.List<JournalFile> files, java.util.List<JournalFile> newFiles, java.util.List<org.apache.activemq.artemis.api.core.Pair<java.lang.String,java.lang.String>> renames) throws java.lang.Exception
- Throws:
java.lang.Exception
-
readControlFile
public static SequentialFile readControlFile(SequentialFileFactory fileFactory, java.util.List<java.lang.String> dataFiles, java.util.List<java.lang.String> newFiles, java.util.List<org.apache.activemq.artemis.api.core.Pair<java.lang.String,java.lang.String>> renameFile) throws java.lang.Exception
- Throws:
java.lang.Exception
-
flush
public void flush() throws java.lang.ExceptionWrite pending output into file- Throws:
java.lang.Exception
-
containsRecord
public boolean containsRecord(long id)
-
openFile
protected void openFile() throws java.lang.Exception- Throws:
java.lang.Exception
-
addToRecordsSnaptshot
protected void addToRecordsSnaptshot(long id)
-
getWritingChannel
protected org.apache.activemq.artemis.api.core.ActiveMQBuffer getWritingChannel()
- Returns:
- the writingChannel
-
writeEncoder
protected void writeEncoder(JournalInternalRecord record) throws java.lang.Exception
- Throws:
java.lang.Exception
-
writeEncoder
protected void writeEncoder(JournalInternalRecord record, int txcounter) throws java.lang.Exception
- Throws:
java.lang.Exception
-
-