Class JournalCompactor
java.lang.Object
org.apache.activemq.artemis.core.journal.impl.AbstractJournalUpdateTask
org.apache.activemq.artemis.core.journal.impl.JournalCompactor
- All Implemented Interfaces:
JournalReaderCallback, JournalRecordProvider
-
Field Summary
Fields inherited from class AbstractJournalUpdateTask
currentFile, FILE_COMPACT_CONTROL, fileFactory, filesRepository, journal, newDataFiles, nextOrderingID, sequentialFile -
Constructor Summary
ConstructorsConstructorDescriptionJournalCompactor(SequentialFileFactory fileFactory, JournalImpl journal, JournalFilesRepository filesRepository, org.apache.activemq.artemis.utils.collections.ConcurrentLongHashSet recordsSnapshot, long firstFileID) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCommandCommit(JournalTransaction liveTransaction, JournalFile currentFile) voidaddCommandDelete(long id, JournalFile usedFile) voidaddCommandRollback(JournalTransaction liveTransaction, JournalFile currentFile) voidaddCommandUpdate(long id, JournalFile usedFile, int size, boolean replaceableUpdate) voidaddPendingTransaction(long transactionID, long[] ids) This methods informs the Compactor about the existence of a pending (non committed) transactionvoidorg.apache.activemq.artemis.utils.collections.ConcurrentLongHashMap<JournalRecord> org.apache.activemq.artemis.utils.collections.ConcurrentLongHashMap<JournalTransaction> org.apache.activemq.artemis.utils.collections.ConcurrentLongHashMap<JournalRecord> voidmarkAsDataFile(JournalFile file) voidonReadAddRecord(RecordInfo info) voidonReadAddRecordTX(long transactionID, RecordInfo info) voidonReadCommitRecord(long transactionID, int numberOfRecords) voidonReadDeleteRecord(long recordID) voidonReadDeleteRecordTX(long transactionID, RecordInfo info) voidonReadPrepareRecord(long transactionID, byte[] extraData, int numberOfRecords) voidonReadRollbackRecord(long transactionID) voidonReadUpdateRecord(RecordInfo info) voidonReadUpdateRecordTX(long transactionID, RecordInfo info) voidreplaceableRecord(byte recordType) voidReplay pending counts that happened during compactingMethods inherited from class AbstractJournalUpdateTask
addToRecordsSnaptshot, containsRecord, flush, getWritingChannel, openFile, readControlFile, writeControlFile, writeEncoder, writeEncoderMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface JournalReaderCallback
done, onReadEventRecord
-
Constructor Details
-
JournalCompactor
public JournalCompactor(SequentialFileFactory fileFactory, JournalImpl journal, JournalFilesRepository filesRepository, org.apache.activemq.artemis.utils.collections.ConcurrentLongHashSet recordsSnapshot, long firstFileID)
-
-
Method Details
-
getNewDataFiles
-
getNewRecords
public org.apache.activemq.artemis.utils.collections.ConcurrentLongHashMap<JournalRecord> getNewRecords() -
getNewTransactions
public org.apache.activemq.artemis.utils.collections.ConcurrentLongHashMap<JournalTransaction> getNewTransactions() -
addPendingTransaction
public void addPendingTransaction(long transactionID, long[] ids) This methods informs the Compactor about the existence of a pending (non committed) transaction -
addCommandCommit
-
addCommandRollback
-
addCommandDelete
-
addCommandUpdate
-
replayPendingCommands
public void replayPendingCommands()Replay pending counts that happened during compacting -
flushUpdates
-
onReadAddRecord
- Specified by:
onReadAddRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadAddRecordTX
- Specified by:
onReadAddRecordTXin interfaceJournalReaderCallback- Throws:
Exception
-
onReadCommitRecord
- Specified by:
onReadCommitRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadDeleteRecord
- Specified by:
onReadDeleteRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadDeleteRecordTX
- Specified by:
onReadDeleteRecordTXin interfaceJournalReaderCallback- Throws:
Exception
-
markAsDataFile
- Specified by:
markAsDataFilein interfaceJournalReaderCallback
-
onReadPrepareRecord
public void onReadPrepareRecord(long transactionID, byte[] extraData, int numberOfRecords) throws Exception - Specified by:
onReadPrepareRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadRollbackRecord
- Specified by:
onReadRollbackRecordin interfaceJournalReaderCallback- Throws:
Exception
-
replaceableRecord
public void replaceableRecord(byte recordType) -
onReadUpdateRecord
- Specified by:
onReadUpdateRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadUpdateRecordTX
- Specified by:
onReadUpdateRecordTXin interfaceJournalReaderCallback- Throws:
Exception
-
getCompactor
- Specified by:
getCompactorin interfaceJournalRecordProvider
-
getRecords
public org.apache.activemq.artemis.utils.collections.ConcurrentLongHashMap<JournalRecord> getRecords()- Specified by:
getRecordsin interfaceJournalRecordProvider
-