use of org.apache.flink.connector.file.sink.compactor.operator.CompactCoordinator in project flink by apache.
the class CompactCoordinatorTest method testPassthrough.
@Test
public void testPassthrough() throws Exception {
FileCompactStrategy strategy = Builder.newBuilder().setSizeThreshold(10).build();
CompactCoordinator coordinator = new CompactCoordinator(strategy, getTestCommittableSerializer());
try (OneInputStreamOperatorTestHarness<CommittableMessage<FileSinkCommittable>, CompactorRequest> harness = new OneInputStreamOperatorTestHarness<>(coordinator)) {
harness.setup();
harness.open();
FileSinkCommittable cleanupToPassthrough = cleanupInprogress("0", ".0", 1);
FileSinkCommittable sizeUnavailableToPassthrough = committable("0", ".1", -1);
FileSinkCommittable pathNotHidToPassThrough = committable("0", "2", -1);
FileSinkCommittable normalCommittable = committable("0", ".3", 10);
harness.processElement(message(cleanupToPassthrough));
harness.processElement(message(sizeUnavailableToPassthrough));
harness.processElement(message(pathNotHidToPassThrough));
harness.processElement(message(normalCommittable));
List<CompactorRequest> results = harness.extractOutputValues();
Assert.assertEquals(1, results.size());
assertToCompact(results.get(0), normalCommittable);
assertToPassthrough(results.get(0), cleanupToPassthrough, sizeUnavailableToPassthrough, pathNotHidToPassThrough);
}
}
use of org.apache.flink.connector.file.sink.compactor.operator.CompactCoordinator in project flink by apache.
the class CompactCoordinatorTest method testRestore.
@Test
public void testRestore() throws Exception {
FileCompactStrategy strategy = Builder.newBuilder().setSizeThreshold(10).build();
CompactCoordinator coordinator = new CompactCoordinator(strategy, getTestCommittableSerializer());
FileSinkCommittable committable0 = committable("0", ".0", 5);
FileSinkCommittable committable1 = committable("0", ".1", 6);
FileSinkCommittable committable2 = committable("0", ".2", 5);
FileSinkCommittable committable3 = committable("1", ".0", 5);
OperatorSubtaskState state;
try (OneInputStreamOperatorTestHarness<CommittableMessage<FileSinkCommittable>, CompactorRequest> harness = new OneInputStreamOperatorTestHarness<>(coordinator)) {
harness.setup();
harness.open();
harness.processElement(message(committable0));
Assert.assertEquals(0, harness.extractOutputValues().size());
harness.prepareSnapshotPreBarrier(1);
state = harness.snapshot(1, 1);
}
coordinator = new CompactCoordinator(strategy, getTestCommittableSerializer());
try (OneInputStreamOperatorTestHarness<CommittableMessage<FileSinkCommittable>, CompactorRequest> harness = new OneInputStreamOperatorTestHarness<>(coordinator)) {
harness.setup();
harness.initializeState(state);
harness.open();
harness.processElement(message(committable1));
Assert.assertEquals(1, harness.extractOutputValues().size());
harness.processElement(message(committable2));
harness.processElement(message(committable3));
Assert.assertEquals(1, harness.extractOutputValues().size());
harness.endInput();
List<CompactorRequest> results = harness.extractOutputValues();
Assert.assertEquals(3, results.size());
assertToCompact(results.get(0), committable0, committable1);
assertToCompact(results.get(1), committable2);
assertToCompact(results.get(2), committable3);
}
}
use of org.apache.flink.connector.file.sink.compactor.operator.CompactCoordinator in project flink by apache.
the class CompactCoordinatorTest method testRestoreWithChangedStrategy.
@Test
public void testRestoreWithChangedStrategy() throws Exception {
FileCompactStrategy strategy = Builder.newBuilder().setSizeThreshold(100).build();
CompactCoordinator coordinator = new CompactCoordinator(strategy, getTestCommittableSerializer());
FileSinkCommittable committable0 = committable("0", ".0", 5);
FileSinkCommittable committable1 = committable("0", ".1", 6);
FileSinkCommittable committable2 = committable("0", ".2", 7);
FileSinkCommittable committable3 = committable("0", ".3", 8);
FileSinkCommittable committable4 = committable("0", ".4", 9);
FileSinkCommittable committable5 = committable("0", ".5", 2);
OperatorSubtaskState state;
try (OneInputStreamOperatorTestHarness<CommittableMessage<FileSinkCommittable>, CompactorRequest> harness = new OneInputStreamOperatorTestHarness<>(coordinator)) {
harness.setup();
harness.open();
harness.processElement(message(committable0));
harness.processElement(message(committable1));
harness.processElement(message(committable2));
harness.processElement(message(committable3));
harness.processElement(message(committable4));
harness.prepareSnapshotPreBarrier(1);
state = harness.snapshot(1, 1);
Assert.assertEquals(0, harness.extractOutputValues().size());
}
FileCompactStrategy changedStrategy = Builder.newBuilder().setSizeThreshold(10).build();
CompactCoordinator changedCoordinator = new CompactCoordinator(changedStrategy, getTestCommittableSerializer());
try (OneInputStreamOperatorTestHarness<CommittableMessage<FileSinkCommittable>, CompactorRequest> harness = new OneInputStreamOperatorTestHarness<>(changedCoordinator)) {
harness.setup();
harness.initializeState(state);
harness.open();
Assert.assertEquals(2, harness.extractOutputValues().size());
harness.processElement(message(committable5));
List<CompactorRequest> results = harness.extractOutputValues();
Assert.assertEquals(3, results.size());
assertToCompact(results.get(0), committable0, committable1);
assertToCompact(results.get(1), committable2, committable3);
assertToCompact(results.get(2), committable4, committable5);
}
}
Aggregations