Java Code Examples for org.apache.flink.runtime.state.TestTaskStateManager#setWaitForReportLatch()
The following examples show how to use
org.apache.flink.runtime.state.TestTaskStateManager#setWaitForReportLatch() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: OneInputStreamTaskTest.java From Flink-CEPplus with Apache License 2.0 | 2 votes |
/** * Tests that the stream operator can snapshot and restore the operator state of chained * operators. */ @Test public void testSnapshottingAndRestoring() throws Exception { final Deadline deadline = new FiniteDuration(2, TimeUnit.MINUTES).fromNow(); final OneInputStreamTaskTestHarness<String, String> testHarness = new OneInputStreamTaskTestHarness<>( OneInputStreamTask::new, BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO); testHarness.setupOutputForSingletonOperatorChain(); IdentityKeySelector<String> keySelector = new IdentityKeySelector<>(); testHarness.configureForKeyedStream(keySelector, BasicTypeInfo.STRING_TYPE_INFO); long checkpointId = 1L; long checkpointTimestamp = 1L; int numberChainedTasks = 11; StreamConfig streamConfig = testHarness.getStreamConfig(); configureChainedTestingStreamOperator(streamConfig, numberChainedTasks); TestTaskStateManager taskStateManager = testHarness.taskStateManager; OneShotLatch waitForAcknowledgeLatch = new OneShotLatch(); taskStateManager.setWaitForReportLatch(waitForAcknowledgeLatch); // reset number of restore calls TestingStreamOperator.numberRestoreCalls = 0; testHarness.invoke(); testHarness.waitForTaskRunning(deadline.timeLeft().toMillis()); final OneInputStreamTask<String, String> streamTask = testHarness.getTask(); CheckpointMetaData checkpointMetaData = new CheckpointMetaData(checkpointId, checkpointTimestamp); while (!streamTask.triggerCheckpoint(checkpointMetaData, CheckpointOptions.forCheckpointWithDefaultLocation())) {} // since no state was set, there shouldn't be restore calls assertEquals(0, TestingStreamOperator.numberRestoreCalls); waitForAcknowledgeLatch.await(); assertEquals(checkpointId, taskStateManager.getReportedCheckpointId()); testHarness.endInput(); testHarness.waitForTaskCompletion(deadline.timeLeft().toMillis()); final OneInputStreamTaskTestHarness<String, String> restoredTaskHarness = new OneInputStreamTaskTestHarness<>( OneInputStreamTask::new, BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO); restoredTaskHarness.configureForKeyedStream(keySelector, BasicTypeInfo.STRING_TYPE_INFO); restoredTaskHarness.setTaskStateSnapshot(checkpointId, taskStateManager.getLastJobManagerTaskStateSnapshot()); StreamConfig restoredTaskStreamConfig = restoredTaskHarness.getStreamConfig(); configureChainedTestingStreamOperator(restoredTaskStreamConfig, numberChainedTasks); TaskStateSnapshot stateHandles = taskStateManager.getLastJobManagerTaskStateSnapshot(); Assert.assertEquals(numberChainedTasks, stateHandles.getSubtaskStateMappings().size()); TestingStreamOperator.numberRestoreCalls = 0; // transfer state to new harness restoredTaskHarness.taskStateManager.restoreLatestCheckpointState( taskStateManager.getJobManagerTaskStateSnapshotsByCheckpointId()); restoredTaskHarness.invoke(); restoredTaskHarness.endInput(); restoredTaskHarness.waitForTaskCompletion(deadline.timeLeft().toMillis()); // restore of every chained operator should have been called assertEquals(numberChainedTasks, TestingStreamOperator.numberRestoreCalls); TestingStreamOperator.numberRestoreCalls = 0; TestingStreamOperator.numberSnapshotCalls = 0; }
Example 2
Source File: OneInputStreamTaskTest.java From flink with Apache License 2.0 | 2 votes |
/** * Tests that the stream operator can snapshot and restore the operator state of chained * operators. */ @Test public void testSnapshottingAndRestoring() throws Exception { final Deadline deadline = new FiniteDuration(2, TimeUnit.MINUTES).fromNow(); final OneInputStreamTaskTestHarness<String, String> testHarness = new OneInputStreamTaskTestHarness<>( OneInputStreamTask::new, BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO); testHarness.setupOutputForSingletonOperatorChain(); IdentityKeySelector<String> keySelector = new IdentityKeySelector<>(); testHarness.configureForKeyedStream(keySelector, BasicTypeInfo.STRING_TYPE_INFO); long checkpointId = 1L; long checkpointTimestamp = 1L; int numberChainedTasks = 11; StreamConfig streamConfig = testHarness.getStreamConfig(); configureChainedTestingStreamOperator(streamConfig, numberChainedTasks); TestTaskStateManager taskStateManager = testHarness.taskStateManager; OneShotLatch waitForAcknowledgeLatch = new OneShotLatch(); taskStateManager.setWaitForReportLatch(waitForAcknowledgeLatch); // reset number of restore calls TestingStreamOperator.numberRestoreCalls = 0; testHarness.invoke(); testHarness.waitForTaskRunning(deadline.timeLeft().toMillis()); final OneInputStreamTask<String, String> streamTask = testHarness.getTask(); CheckpointMetaData checkpointMetaData = new CheckpointMetaData(checkpointId, checkpointTimestamp); while (!streamTask.triggerCheckpoint(checkpointMetaData, CheckpointOptions.forCheckpointWithDefaultLocation(), false)) {} // since no state was set, there shouldn't be restore calls assertEquals(0, TestingStreamOperator.numberRestoreCalls); waitForAcknowledgeLatch.await(); assertEquals(checkpointId, taskStateManager.getReportedCheckpointId()); testHarness.endInput(); testHarness.waitForTaskCompletion(deadline.timeLeft().toMillis()); final OneInputStreamTaskTestHarness<String, String> restoredTaskHarness = new OneInputStreamTaskTestHarness<>( OneInputStreamTask::new, BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO); restoredTaskHarness.configureForKeyedStream(keySelector, BasicTypeInfo.STRING_TYPE_INFO); restoredTaskHarness.setTaskStateSnapshot(checkpointId, taskStateManager.getLastJobManagerTaskStateSnapshot()); StreamConfig restoredTaskStreamConfig = restoredTaskHarness.getStreamConfig(); configureChainedTestingStreamOperator(restoredTaskStreamConfig, numberChainedTasks); TaskStateSnapshot stateHandles = taskStateManager.getLastJobManagerTaskStateSnapshot(); Assert.assertEquals(numberChainedTasks, stateHandles.getSubtaskStateMappings().size()); TestingStreamOperator.numberRestoreCalls = 0; // transfer state to new harness restoredTaskHarness.taskStateManager.restoreLatestCheckpointState( taskStateManager.getJobManagerTaskStateSnapshotsByCheckpointId()); restoredTaskHarness.invoke(); restoredTaskHarness.endInput(); restoredTaskHarness.waitForTaskCompletion(deadline.timeLeft().toMillis()); // restore of every chained operator should have been called assertEquals(numberChainedTasks, TestingStreamOperator.numberRestoreCalls); TestingStreamOperator.numberRestoreCalls = 0; TestingStreamOperator.numberSnapshotCalls = 0; }
Example 3
Source File: OneInputStreamTaskTest.java From flink with Apache License 2.0 | 2 votes |
/** * Tests that the stream operator can snapshot and restore the operator state of chained * operators. */ @Test public void testSnapshottingAndRestoring() throws Exception { final Deadline deadline = new FiniteDuration(2, TimeUnit.MINUTES).fromNow(); final OneInputStreamTaskTestHarness<String, String> testHarness = new OneInputStreamTaskTestHarness<>( OneInputStreamTask::new, BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO); testHarness.setupOutputForSingletonOperatorChain(); IdentityKeySelector<String> keySelector = new IdentityKeySelector<>(); testHarness.configureForKeyedStream(keySelector, BasicTypeInfo.STRING_TYPE_INFO); long checkpointId = 1L; long checkpointTimestamp = 1L; int numberChainedTasks = 11; StreamConfig streamConfig = testHarness.getStreamConfig(); configureChainedTestingStreamOperator(streamConfig, numberChainedTasks); TestTaskStateManager taskStateManager = testHarness.taskStateManager; OneShotLatch waitForAcknowledgeLatch = new OneShotLatch(); taskStateManager.setWaitForReportLatch(waitForAcknowledgeLatch); // reset number of restore calls TestingStreamOperator.numberRestoreCalls = 0; testHarness.invoke(); testHarness.waitForTaskRunning(); final OneInputStreamTask<String, String> streamTask = testHarness.getTask(); CheckpointMetaData checkpointMetaData = new CheckpointMetaData(checkpointId, checkpointTimestamp); streamTask.triggerCheckpointAsync(checkpointMetaData, CheckpointOptions.forCheckpointWithDefaultLocation(), false).get(); // since no state was set, there shouldn't be restore calls assertEquals(0, TestingStreamOperator.numberRestoreCalls); waitForAcknowledgeLatch.await(); assertEquals(checkpointId, taskStateManager.getReportedCheckpointId()); testHarness.endInput(); testHarness.waitForTaskCompletion(deadline.timeLeft().toMillis()); final OneInputStreamTaskTestHarness<String, String> restoredTaskHarness = new OneInputStreamTaskTestHarness<>( OneInputStreamTask::new, BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO); restoredTaskHarness.configureForKeyedStream(keySelector, BasicTypeInfo.STRING_TYPE_INFO); restoredTaskHarness.setTaskStateSnapshot(checkpointId, taskStateManager.getLastJobManagerTaskStateSnapshot()); StreamConfig restoredTaskStreamConfig = restoredTaskHarness.getStreamConfig(); configureChainedTestingStreamOperator(restoredTaskStreamConfig, numberChainedTasks); TaskStateSnapshot stateHandles = taskStateManager.getLastJobManagerTaskStateSnapshot(); Assert.assertEquals(numberChainedTasks, stateHandles.getSubtaskStateMappings().size()); TestingStreamOperator.numberRestoreCalls = 0; // transfer state to new harness restoredTaskHarness.taskStateManager.restoreLatestCheckpointState( taskStateManager.getJobManagerTaskStateSnapshotsByCheckpointId()); restoredTaskHarness.invoke(); restoredTaskHarness.endInput(); restoredTaskHarness.waitForTaskCompletion(deadline.timeLeft().toMillis()); // restore of every chained operator should have been called assertEquals(numberChainedTasks, TestingStreamOperator.numberRestoreCalls); TestingStreamOperator.numberRestoreCalls = 0; TestingStreamOperator.numberSnapshotCalls = 0; }