protected void createTable(SweepStrategy sweepStrategy) { createTable(TABLE_NAME, sweepStrategy); }
protected void putTwoValuesInEachCell(List<Cell> cells) { createTable(SweepStrategy.CONSERVATIVE); int ts = 1; for (Cell cell : cells) { put(cell, "val1", ts); put(cell, "val2", ts + 5); ts += 10; } }
@Test(timeout = 50000) public void testDontSweepLatestConservative() { createTable(SweepStrategy.CONSERVATIVE); putIntoDefaultColumn("foo", "bar", 50); Optional<SweepResults> optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(0, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); assertEquals("bar", getFromDefaultColumn("foo", 150)); assertEqualsDisregardingExtraSentinels(ImmutableSet.of(50L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepLatestDeletedThorough() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "", 50); Optional<SweepResults> optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); assertNull(getFromDefaultColumn("foo", 150)); assertEquals(ImmutableSet.of(), getAllTsFromDefaultColumn("foo")); }
private void testSweepManyRows(SweepStrategy strategy) { createTable(strategy); putIntoDefaultColumn("foo", "bar1", 5); putIntoDefaultColumn("foo", "bar2", 10); putIntoDefaultColumn("baz", "bar3", 15); putIntoDefaultColumn("baz", "bar4", 20); Optional<SweepResults> optResults = completeSweep(175); optResults.ifPresent(results -> { assertEquals(2, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(4); }); }
@Test(timeout = 50000) public void testDontSweepLatestThorough() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "bar", 50); Optional<SweepResults> optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(0, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); assertEquals("bar", getFromDefaultColumn("foo", 150)); assertEquals(ImmutableSet.of(50L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepLatestDeletedMultiValConservative() { createTable(SweepStrategy.CONSERVATIVE); putIntoDefaultColumn("foo", "old value", 40); putIntoDefaultColumn("foo", "", 50); Optional<SweepResults> optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); assertEquals("", getFromDefaultColumn("foo", 150)); assertEquals(ImmutableSet.of(-1L, 50L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepOnMixedCaseTable() { TableReference mixedCaseTable = TableReference.create(Namespace.create("someNamespace"), "someTable"); createTable(mixedCaseTable, SweepStrategy.CONSERVATIVE); put(mixedCaseTable, "row", "col", "val", 10); put(mixedCaseTable, "row", "col", "val", 20); Optional<SweepResults> optResults = completeSweep(mixedCaseTable, 30); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(2); }); }
@Test(timeout = 50000) public void testSweepLatestNotDeletedMultiValThorough() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "old value", 40); putIntoDefaultColumn("foo", "new value", 50); Optional<SweepResults> optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); assertEquals("new value", getFromDefaultColumn("foo", 150)); assertEquals(ImmutableSet.of(50L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepLatestDeletedMultiRowThorough() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "", 50); put("foo-2", "other", "womp", 60); Optional<SweepResults> optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); assertNull(getFromDefaultColumn("foo", 150)); assertEquals(ImmutableSet.of(), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepingAlreadySweptTable() { createTable(SweepStrategy.CONSERVATIVE); putIntoDefaultColumn("row", "val", 10); putIntoDefaultColumn("row", "val", 20); Optional<SweepResults> optResults = completeSweep(30); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(2); }); optResults = completeSweep(40); optResults.ifPresent(results -> { assertEquals(0, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); }
@Test(timeout = 50000) public void testSweepManyLatestDeletedThorough2() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "bar", 50); putIntoDefaultColumn("foo", "baz", 100); putIntoDefaultColumn("foo", "foo", 125); Optional<SweepResults> optResults = completeSweep(175); optResults.ifPresent(results -> { assertEquals(2, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(3); }); assertEquals("foo", getFromDefaultColumn("foo", 200)); assertEquals(ImmutableSet.of(125L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepOneConservative() { createTable(SweepStrategy.CONSERVATIVE); putIntoDefaultColumn("foo", "bar", 50); putIntoDefaultColumn("foo", "baz", 100); Optional<SweepResults> optResults = completeSweep(175); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(2); }); assertEquals("baz", getFromDefaultColumn("foo", 150)); assertEquals("", getFromDefaultColumn("foo", 80)); assertEquals(ImmutableSet.of(-1L, 100L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepOneThorough() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "bar", 50); putIntoDefaultColumn("foo", "baz", 100); Optional<SweepResults> optResults = completeSweep(175); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(2); }); assertEquals("baz", getFromDefaultColumn("foo", 150)); assertNull(getFromDefaultColumn("foo", 80)); assertEquals(ImmutableSet.of(100L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testDontSweepFutureConservative() { createTable(SweepStrategy.CONSERVATIVE); putIntoDefaultColumn("foo", "bar", 50); putUncommitted("foo", "bad", 75); putIntoDefaultColumn("foo", "baz", 100); putIntoDefaultColumn("foo", "buzz", 125); putUncommitted("foo", "foo", 150); Optional<SweepResults> optResults = completeSweep(110); optResults.ifPresent(results -> { assertEquals(2, results.getStaleValuesDeleted()); // Future timestamps don't count towards the examined count assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(3); }); assertEquals(ImmutableSet.of(-1L, 100L, 125L, 150L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testDontSweepFutureThorough() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "bar", 50); putUncommitted("foo", "bad", 75); putIntoDefaultColumn("foo", "baz", 100); putIntoDefaultColumn("foo", "buzz", 125); putUncommitted("foo", "foo", 150); Optional<SweepResults> optResults = completeSweep(110); optResults.ifPresent(results -> { assertEquals(2, results.getStaleValuesDeleted()); // Future timestamps don't count towards the examined count assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(3); }); assertEquals(ImmutableSet.of(100L, 125L, 150L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepManyLatestDeletedThorough1() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "bar", 50); putIntoDefaultColumn("foo", "baz", 100); putIntoDefaultColumn("foo", "", 125); putIntoDefaultColumn("zzz", "bar", 51); Optional<SweepResults> optResults = completeSweep(175); optResults.ifPresent(results -> { assertEquals(3, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(4); }); assertNull(getFromDefaultColumn("foo", 200)); assertEquals(ImmutableSet.of(), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepLatestDeletedMultiColThorough() { createTable(SweepStrategy.THOROUGH); put("foo", "other column", "other value", 40); putIntoDefaultColumn("foo", "", 50); Optional<SweepResults> optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(1, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); // The default column had its only value deleted assertNull(getFromDefaultColumn("foo", 150)); assertEquals(ImmutableSet.of(), getAllTsFromDefaultColumn("foo")); // The other column was unaffected assertEquals("other value", get("foo", "other column", 150)); assertEquals(ImmutableSet.of(40L), getAllTs("foo", "other column")); }
@Test(timeout = 50000) public void testSweepManyValuesConservative() { createTable(SweepStrategy.CONSERVATIVE); putIntoDefaultColumn("foo", "bar", 50); putIntoDefaultColumn("foo", "baz", 100); putIntoDefaultColumn("foo", "buzz", 125); Optional<SweepResults> optResults = completeSweep(175); optResults.ifPresent(results -> { assertEquals(2, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(3); }); assertEquals("buzz", getFromDefaultColumn("foo", 200)); assertEquals("", getFromDefaultColumn("foo", 124)); assertEquals(ImmutableSet.of(-1L, 125L), getAllTsFromDefaultColumn("foo")); }
@Test(timeout = 50000) public void testSweepLatestDeletedMultiValThorough() { createTable(SweepStrategy.THOROUGH); putIntoDefaultColumn("foo", "old value", 40); putIntoDefaultColumn("foo", "", 50); Optional<SweepResults> optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(2, results.getStaleValuesDeleted()); assertThat(results.getCellTsPairsExamined()).isGreaterThanOrEqualTo(1); }); assertNull(getFromDefaultColumn("foo", 150)); assertEquals(ImmutableSet.of(), getAllTsFromDefaultColumn("foo")); // The second sweep has no cells to examine optResults = completeSweep(75); optResults.ifPresent(results -> { assertEquals(0, results.getStaleValuesDeleted()); assertEquals(0, results.getCellTsPairsExamined()); }); }