@Benchmark public void measureNewestSegmentFirstPolicy(Blackhole blackhole) { final CompactionSegmentIterator iterator = policy.reset(compactionConfigs, dataSources, Collections.emptyMap()); for (int i = 0; i < numCompactionTaskSlots && iterator.hasNext(); i++) { final List<DataSegment> segments = iterator.next(); blackhole.consume(segments); } } }
@Test public void testIfFirstSegmentIsInSkipOffset() { final VersionedIntervalTimeline<String, DataSegment> timeline = createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-02T14:00:00/2017-12-03T00:00:00"), new Period("PT5H"), 40000, 1 ) ); final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of(DATA_SOURCE, createCompactionConfig(40000, 100, new Period("P1D"))), ImmutableMap.of(DATA_SOURCE, timeline), Collections.emptyMap() ); Assert.assertFalse(iterator.hasNext()); }
@Test public void testIfFirstSegmentOverlapsSkipOffset() { final VersionedIntervalTimeline<String, DataSegment> timeline = createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-01T23:00:00/2017-12-03T00:00:00"), new Period("PT5H"), 40000, 1 ) ); final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of(DATA_SOURCE, createCompactionConfig(40000, 100, new Period("P1D"))), ImmutableMap.of(DATA_SOURCE, timeline), Collections.emptyMap() ); Assert.assertFalse(iterator.hasNext()); }
for (; iterator.hasNext() && numSubmittedTasks < numAvailableCompactionTaskSlots; numSubmittedTasks++) { final List<DataSegment> segmentsToCompact = iterator.next();
@Test public void testIgnoreSingleSegmentToCompact() { final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of(DATA_SOURCE, createCompactionConfig(800000, 100, new Period("P1D"))), ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-02T00:00:00/2017-12-03T00:00:00"), new Period("P1D"), 200, 1 ), new SegmentGenerateSpec( Intervals.of("2017-12-01T00:00:00/2017-12-02T00:00:00"), new Period("P1D"), 200, 1 ) ) ), Collections.emptyMap() ); Assert.assertFalse(iterator.hasNext()); }
); Assert.assertFalse(iterator.hasNext());
while (iterator.hasNext()) { final List<DataSegment> segments = iterator.next(); lastInterval = segments.get(0).getInterval();
while (iterator.hasNext()) { final List<DataSegment> segments = iterator.next(); lastInterval = segments.get(0).getInterval();
for (; iterator.hasNext() && numSubmittedTasks < numAvailableCompactionTaskSlots; numSubmittedTasks++) { final List<DataSegment> segmentsToCompact = iterator.next();