@Test public void testAddRollbackTXIDMap1() throws Exception { setup(10, 10 * 1024, true); createJournal(); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(10, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); addTx(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); rollback(1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); }
@Test public void testAddDeleteCommitTXIDMap1() throws Exception { setup(10, 10 * 1024, true); createJournal(); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(10, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); addTx(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); deleteTx(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); commit(1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); }
@Test public void testAddCommitTXIDMap1() throws Exception { setup(10, 10 * 1024, true); createJournal(); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(10, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); addTx(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); commit(1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); }
@Test public void testAddDeleteIDMap() throws Exception { setup(10, 10 * 1024, true); createJournal(); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(10, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); add(1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); delete(1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); }
@Test public void testAddDeleteCommitTXIDMap2() throws Exception { setup(10, 10 * 1024, true); createJournal(); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(10, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); add(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); deleteTx(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); commit(1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); }
@Test public void testAddDeleteRollbackTXIDMap1() throws Exception { setup(10, 10 * 1024, true); createJournal(); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(10, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); addTx(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); deleteTx(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); rollback(1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); }
@Test public void testAddDeleteRollbackTXIDMap2() throws Exception { setup(10, 10 * 1024, true); createJournal(); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(10, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); add(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); deleteTx(1, 1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); rollback(1); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); }
Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(2, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(2, journal.getIDMapSize());
Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(91, journal.getIDMapSize()); Assert.assertEquals(95, journal.getIDMapSize()); Assert.assertEquals(200, journal.getIDMapSize());
Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(10, journal.getIDMapSize()); Assert.assertEquals(10, journal.getIDMapSize());
Assert.assertEquals(8, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(initialNumberOfAddRecords, journal.getIDMapSize()); Assert.assertEquals(initialNumberOfAddRecords / 2, journal.getIDMapSize()); Assert.assertEquals(initialNumberOfAddRecords / 2 + 10, journal.getIDMapSize()); Assert.assertEquals(initialNumberOfAddRecords / 2 + 10, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize());
@Test public void testOrganicallyWithALimit() throws Exception { setup(2, 5, 10 * 1024, true, 50); createJournal(); journal.setAutoReclaim(true); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(2, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); // Fill all the files for (int i = 0; i < 200; i++) { add(i); journal.forceMoveNextFile(); } journal.checkReclaimStatus(); for (int i = 0; i < 200; i++) { delete(i); } journal.forceMoveNextFile(); journal.checkReclaimStatus(); files1 = fileFactory.listFiles(fileExtension); Assert.assertTrue("supposed to have less than 10 but it had " + files1.size() + " files created", files1.size() < 10); stopJournal(); }
Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize());
@Test public void testReclaimAddUpdateDeleteDifferentFiles2() throws Exception { // Make sure there is one record per file setup(2, calculateRecordSize(JournalImpl.SIZE_HEADER, getAlignment()) + calculateRecordSize(JournalImpl.SIZE_ADD_RECORD + 1 + recordLength, getAlignment()), true); createJournal(); startJournal(); load(); add(1); update(1); add(2); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(4, files1.size()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(2, journal.getDataFilesCount()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(2, journal.getIDMapSize()); checkAndReclaimFiles(); List<String> files2 = fileFactory.listFiles(fileExtension); Assert.assertEquals(4, files2.size()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(2, journal.getDataFilesCount()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(2, journal.getIDMapSize()); stopJournal(); }
Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(2, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(3, journal.getIDMapSize());
Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(2, journal.getIDMapSize()); Assert.assertEquals(2, journal.getIDMapSize()); Assert.assertEquals(2, journal.getIDMapSize());
@Test public void testReclaimAddUpdateDeleteDifferentFiles1() throws Exception { // Make sure there is one record per file setup(2, calculateRecordSize(JournalImpl.SIZE_HEADER, getAlignment()) + calculateRecordSize(JournalImpl.SIZE_ADD_RECORD + 1 + recordLength, getAlignment()), true); createJournal(); startJournal(); load(); add(1); update(1); delete(1); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(4, files1.size()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(2, journal.getDataFilesCount()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); checkAndReclaimFiles(); List<String> files2 = fileFactory.listFiles(fileExtension); // 1 file for nextOpenedFile Assert.assertEquals(4, files2.size()); Assert.assertEquals(1, journal.getOpenedFilesCount()); // 1 gets deleted and 1 gets reclaimed Assert.assertEquals(2, journal.getDataFilesCount()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); stopJournal(); }
Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(2, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(2, journal.getIDMapSize()); Assert.assertEquals(2, journal.getIDMapSize()); Assert.assertEquals(2, journal.getIDMapSize());
Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(2, journal.getIDMapSize()); Assert.assertEquals(3, journal.getIDMapSize()); Assert.assertEquals(1, journal.getOpenedFilesCount());
Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(0, journal.getIDMapSize()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(1, journal.getIDMapSize());