@Test public void sweepableTimestampsGetsScrubbedWhenLastSweptProgressesInNewCoarsePartition() { long tsSecondPartitionFine = LOW_TS + TS_FINE_GRANULARITY; long largestFirstPartitionCoarse = TS_COARSE_GRANULARITY - 1L; long thirdPartitionCoarse = 2 * TS_COARSE_GRANULARITY; enqueueWriteCommitted(TABLE_CONS, LOW_TS); enqueueWriteCommitted(TABLE_CONS, tsSecondPartitionFine); enqueueWriteCommitted(TABLE_CONS, largestFirstPartitionCoarse); enqueueWriteCommitted(TABLE_CONS, thirdPartitionCoarse); sweepQueue.sweepNextBatch(ShardAndStrategy.conservative(CONS_SHARD)); assertLowestFinePartitionInSweepableTimestampsEquals(tsPartitionFine(LOW_TS)); sweepQueue.sweepNextBatch(ShardAndStrategy.conservative(CONS_SHARD)); assertLowestFinePartitionInSweepableTimestampsEquals(tsPartitionFine(LOW_TS)); // after this sweep we progress to thirdPartitionCoarse - 1 sweepQueue.sweepNextBatch(ShardAndStrategy.conservative(CONS_SHARD)); assertLowestFinePartitionInSweepableTimestampsEquals(tsPartitionFine(thirdPartitionCoarse)); }
@Test public void sweepableTimestampsGetsScrubbedWhenNoMoreToSweepButSweepTsInNewCoarsePartition() { long tsSecondPartitionFine = LOW_TS + TS_FINE_GRANULARITY; long largestFirstPartitionCoarse = TS_COARSE_GRANULARITY - 1L; enqueueWriteCommitted(TABLE_CONS, LOW_TS); enqueueWriteCommitted(TABLE_CONS, tsSecondPartitionFine); enqueueWriteCommitted(TABLE_CONS, largestFirstPartitionCoarse); sweepQueue.sweepNextBatch(ShardAndStrategy.conservative(CONS_SHARD)); assertLowestFinePartitionInSweepableTimestampsEquals(tsPartitionFine(LOW_TS)); sweepQueue.sweepNextBatch(ShardAndStrategy.conservative(CONS_SHARD)); assertLowestFinePartitionInSweepableTimestampsEquals(tsPartitionFine(LOW_TS)); // after this sweep we progress to sweepTsConservative - 1 sweepQueue.sweepNextBatch(ShardAndStrategy.conservative(CONS_SHARD)); assertNoEntriesInSweepableTimestampsBeforeSweepTimestamp(); }