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
public class JournalCompactor extends AbstractJournalUpdateTask implements JournalRecordProvider
-
-
Field Summary
-
Fields inherited from class org.apache.activemq.artemis.core.journal.impl.AbstractJournalUpdateTask
currentFile, FILE_COMPACT_CONTROL, fileFactory, filesRepository, journal, newDataFiles, nextOrderingID, sequentialFile
-
-
Constructor Summary
Constructors Constructor Description JournalCompactor(SequentialFileFactory fileFactory, JournalImpl journal, JournalFilesRepository filesRepository, ConcurrentLongHashSet recordsSnapshot, long firstFileID)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddCommandCommit(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) transactionvoidflushUpdates()JournalCompactorgetCompactor()List<JournalFile>getNewDataFiles()ConcurrentLongHashMap<JournalRecord>getNewRecords()ConcurrentLongHashMap<JournalTransaction>getNewTransactions()ConcurrentLongHashMap<JournalRecord>getRecords()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)voidreplayPendingCommands()Replay pending counts that happened during compacting-
Methods inherited from class org.apache.activemq.artemis.core.journal.impl.AbstractJournalUpdateTask
addToRecordsSnaptshot, containsRecord, flush, getWritingChannel, openFile, readControlFile, writeControlFile, writeEncoder, writeEncoder
-
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, onReadEventRecord
-
-
-
-
Constructor Detail
-
JournalCompactor
public JournalCompactor(SequentialFileFactory fileFactory, JournalImpl journal, JournalFilesRepository filesRepository, ConcurrentLongHashSet recordsSnapshot, long firstFileID)
-
-
Method Detail
-
getNewDataFiles
public List<JournalFile> getNewDataFiles()
-
getNewRecords
public ConcurrentLongHashMap<JournalRecord> getNewRecords()
-
getNewTransactions
public 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
public void addCommandCommit(JournalTransaction liveTransaction, JournalFile currentFile)
-
addCommandRollback
public void addCommandRollback(JournalTransaction liveTransaction, JournalFile currentFile)
-
addCommandDelete
public void addCommandDelete(long id, JournalFile usedFile)- Parameters:
id-usedFile-
-
addCommandUpdate
public void addCommandUpdate(long id, JournalFile usedFile, int size, boolean replaceableUpdate)- Parameters:
id-usedFile-
-
replayPendingCommands
public void replayPendingCommands()
Replay pending counts that happened during compacting
-
onReadAddRecord
public void onReadAddRecord(RecordInfo info) throws Exception
- Specified by:
onReadAddRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadAddRecordTX
public void onReadAddRecordTX(long transactionID, RecordInfo info) throws Exception- Specified by:
onReadAddRecordTXin interfaceJournalReaderCallback- Throws:
Exception
-
onReadCommitRecord
public void onReadCommitRecord(long transactionID, int numberOfRecords) throws Exception- Specified by:
onReadCommitRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadDeleteRecord
public void onReadDeleteRecord(long recordID) throws Exception- Specified by:
onReadDeleteRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadDeleteRecordTX
public void onReadDeleteRecordTX(long transactionID, RecordInfo info) throws Exception- Specified by:
onReadDeleteRecordTXin interfaceJournalReaderCallback- Throws:
Exception
-
markAsDataFile
public void markAsDataFile(JournalFile file)
- Specified by:
markAsDataFilein interfaceJournalReaderCallback
-
onReadPrepareRecord
public void onReadPrepareRecord(long transactionID, byte[] extraData, int numberOfRecords) throws Exception- Specified by:
onReadPrepareRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadRollbackRecord
public void onReadRollbackRecord(long transactionID) throws Exception- Specified by:
onReadRollbackRecordin interfaceJournalReaderCallback- Throws:
Exception
-
replaceableRecord
public void replaceableRecord(byte recordType)
-
onReadUpdateRecord
public void onReadUpdateRecord(RecordInfo info) throws Exception
- Specified by:
onReadUpdateRecordin interfaceJournalReaderCallback- Throws:
Exception
-
onReadUpdateRecordTX
public void onReadUpdateRecordTX(long transactionID, RecordInfo info) throws Exception- Specified by:
onReadUpdateRecordTXin interfaceJournalReaderCallback- Throws:
Exception
-
getCompactor
public JournalCompactor getCompactor()
- Specified by:
getCompactorin interfaceJournalRecordProvider
-
getRecords
public ConcurrentLongHashMap<JournalRecord> getRecords()
- Specified by:
getRecordsin interfaceJournalRecordProvider
-
-