@Override public void run() { while (running.get()) { journal.testCompact(); } } };
@Override public void run() { try { journal.testCompact(); } catch (Exception e) { e.printStackTrace(); } } };
@Override public void run() { try { journal.testCompact(); } catch (Throwable e) { e.printStackTrace(); } } };
@Test public void testSimpleCommitCompactInBetween() throws Exception { setup(2, 60 * 1024, false); final int NUMBER_OF_RECORDS = 1; SimpleIDGenerator idGen = new SimpleIDGenerator(1000); createJournal(); journal.setAutoReclaim(false); startJournal(); load(); for (int i = 0; i < NUMBER_OF_RECORDS; i++) { long tx = idGen.generateID(); addTx(tx, idGen.generateID()); journal.testCompact(); journal.testCompact(); journal.testCompact(); journal.testCompact(); logger.info("going to commit"); commit(tx); } stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
@Test public void testCompactFirstFileReclaimed() throws Exception { setup(2, 60 * 1024, false); final byte recordType = (byte) 0; journal = new JournalImpl(fileSize, minFiles, minFiles, 0, 0, fileFactory, filePrefix, fileExtension, maxAIO); journal.start(); journal.loadInternalOnly(); journal.appendAddRecord(1, recordType, "test".getBytes(), true); journal.forceMoveNextFile(); journal.appendUpdateRecord(1, recordType, "update".getBytes(), true); journal.appendDeleteRecord(1, true); journal.appendAddRecord(2, recordType, "finalRecord".getBytes(), true); for (int i = 10; i < 100; i++) { journal.appendAddRecord(i, recordType, ("tst" + i).getBytes(), true); journal.forceMoveNextFile(); journal.appendUpdateRecord(i, recordType, ("uptst" + i).getBytes(), true); journal.appendDeleteRecord(i, true); } journal.testCompact(); journal.stop(); List<RecordInfo> records1 = new ArrayList<>(); List<PreparedTransactionInfo> preparedRecords = new ArrayList<>(); journal.start(); journal.load(records1, preparedRecords, null); assertEquals(1, records1.size()); }
@Test public void testIncompleteTXDuringcompact() throws Exception { setup(2, 60 * 1024, false); createJournal(); startJournal(); load(); add(1); updateTx(2, 1); journal.testCompact(); journal.testCompact(); commit(2); stopJournal(); startJournal(); loadAndCheck(); stopJournal(); }
journal.testCompact(); journal.testCompact();
journal.testCompact();
@Test public void testOnRollback() throws Exception { setup(2, 60 * 1024, false); createJournal(); startJournal(); journal.setAutoReclaim(false); load(); add(1); updateTx(2, 1); rollback(2); journal.testCompact(); stopJournal(); startJournal(); loadAndCheck(); stopJournal(); }
@Test public void testCompactPrepareRestart3() throws Exception { setup(2, 60 * 1024, false); createJournal(); startJournal(); load(); addTx(1, 2, 3); prepare(1, new SimpleEncoding(10, (byte) 0)); startCompact(); commit(1); finishCompact(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
@Test public void testCompactSecondFileReclaimed() throws Exception { setup(2, 60 * 1024, false); createJournal(); startJournal(); load(); addTx(1, 1, 2, 3, 4); journal.forceMoveNextFile(); addTx(1, 5, 6, 7, 8); commit(1); journal.forceMoveNextFile(); journal.testCompact(); add(10); stopJournal(); startJournal(); loadAndCheck(); stopJournal(); }
@Test public void testCompactPrepareRestart2() throws Exception { setup(2, 60 * 1024, false); createJournal(); startJournal(); load(); addTx(1, 2); prepare(1, new SimpleEncoding(10, (byte) 0)); stopJournal(); createJournal(); startJournal(); loadAndCheck(); startCompact(); commit(1); finishCompact(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
@Test public void testCompactAddAndUpdateFollowedByADelete3() throws Exception { setup(2, 60 * 1024, false); SimpleIDGenerator idGen = new SimpleIDGenerator(1000); createJournal(); journal.setAutoReclaim(false); startJournal(); load(); long firstID = idGen.generateID(); long consumerTX = idGen.generateID(); long addedRecord = idGen.generateID(); add(firstID); updateTx(consumerTX, firstID); startCompact(); addTx(consumerTX, addedRecord); commit(consumerTX); delete(addedRecord); finishCompact(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
@Test public void testCompactPrepareRestart() throws Exception { setup(2, 60 * 1024, false); createJournal(); startJournal(); load(); startCompact(); addTx(1, 2); prepare(1, new SimpleEncoding(10, (byte) 0)); finishCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); startCompact(); commit(1); finishCompact(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
update(newRecord); journal.testCompact();
@Test public void testCompactFirstFileWithPendingCommits7() throws Exception { setup(2, 60 * 1024, true); createJournal(); startJournal(); loadAndCheck(); long tx0 = idGenerator.generateID(); add(idGenerator.generateID()); long[] ids = new long[]{idGenerator.generateID(), idGenerator.generateID()}; addTx(tx0, ids[0]); addTx(tx0, ids[1]); journal.forceMoveNextFile(); commit(tx0); journal.forceMoveNextFile(); delete(ids[0]); delete(ids[1]); journal.forceMoveNextFile(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
@Test public void testCompactAddAndUpdateFollowedByADelete5() throws Exception { setup(2, 60 * 1024, false); SimpleIDGenerator idGen = new SimpleIDGenerator(1000); createJournal(); startJournal(); load(); long appendTX = idGen.generateID(); long appendOne = idGen.generateID(); long appendTwo = idGen.generateID(); long updateTX = idGen.generateID(); addTx(appendTX, appendOne); startCompact(); addTx(appendTX, appendTwo); commit(appendTX); updateTx(updateTX, appendOne); updateTx(updateTX, appendTwo); commit(updateTX); // delete(appendTwo); finishCompact(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
@Test public void testCompactAddAndUpdateFollowedByADelete2() throws Exception { setup(2, 60 * 1024, false); SimpleIDGenerator idGen = new SimpleIDGenerator(1000); createJournal(); journal.setAutoReclaim(false); startJournal(); load(); long firstID = idGen.generateID(); long consumerTX = idGen.generateID(); long appendTX = idGen.generateID(); long addedRecord = idGen.generateID(); addTx(consumerTX, firstID); startCompact(); addTx(appendTX, addedRecord); commit(appendTX); updateTx(consumerTX, addedRecord); commit(consumerTX); long deleteTXID = idGen.generateID(); deleteTx(deleteTXID, addedRecord); commit(deleteTXID); finishCompact(); journal.forceMoveNextFile(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
@Test public void testCompactAddAndUpdateFollowedByADelete4() throws Exception { setup(2, 60 * 1024, false); SimpleIDGenerator idGen = new SimpleIDGenerator(1000); createJournal(); startJournal(); load(); long consumerTX = idGen.generateID(); long firstID = idGen.generateID(); long appendTX = idGen.generateID(); long addedRecord = idGen.generateID(); startCompact(); addTx(consumerTX, firstID); addTx(appendTX, addedRecord); commit(appendTX); updateTx(consumerTX, addedRecord); commit(consumerTX); delete(addedRecord); finishCompact(); journal.forceMoveNextFile(); long newRecord = idGen.generateID(); add(newRecord); update(newRecord); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
journal.testCompact();