@Test public void testMapSpeculativeTaskAttemptSucceedsEvenIfFirstIsKilled() { mockTask = createMockTask(TaskType.MAP); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_KILLED); }
@Test public void testMapSpeculativeTaskAttemptSucceedsEvenIfFirstFails() { mockTask = createMockTask(TaskType.MAP); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_FAILED); }
@Test public void testReduceSpeculativeTaskAttemptSucceedsEvenIfFirstFails() { mockTask = createMockTask(TaskType.REDUCE); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_FAILED); }
@Test public void testMultipleTaskAttemptsSucceed() { mockTask = createMockTask(TaskType.MAP); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_SUCCEEDED); }
@Test public void testCommitAfterSucceeds() { mockTask = createMockTask(TaskType.REDUCE); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_COMMIT_PENDING); }
@Test public void testReduceSpeculativeTaskAttemptSucceedsEvenIfFirstIsKilled() { mockTask = createMockTask(TaskType.REDUCE); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_KILLED); }
@Test public void testSpeculativeMapFetchFailure() { // Setup a scenario where speculative task wins, first attempt killed mockTask = createMockTask(TaskType.MAP); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_KILLED); assertEquals(2, taskAttempts.size()); // speculative attempt retroactively fails from fetch failures mockTask.handle(new TaskTAttemptFailedEvent( taskAttempts.get(1).getAttemptId())); assertTaskScheduledState(); assertEquals(3, taskAttempts.size()); }
@Test public void testSpeculativeMapMultipleSucceedFetchFailure() { // Setup a scenario where speculative task wins, first attempt succeeds mockTask = createMockTask(TaskType.MAP); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_SUCCEEDED); assertEquals(2, taskAttempts.size()); // speculative attempt retroactively fails from fetch failures mockTask.handle(new TaskTAttemptFailedEvent( taskAttempts.get(1).getAttemptId())); assertTaskScheduledState(); assertEquals(3, taskAttempts.size()); }
@Test public void testSpeculativeMapFailedFetchFailure() { // Setup a scenario where speculative task wins, first attempt succeeds mockTask = createMockTask(TaskType.MAP); runSpeculativeTaskAttemptSucceeds(TaskEventType.T_ATTEMPT_FAILED); assertEquals(2, taskAttempts.size()); // speculative attempt retroactively fails from fetch failures mockTask.handle(new TaskTAttemptFailedEvent( taskAttempts.get(1).getAttemptId())); assertTaskScheduledState(); assertEquals(3, taskAttempts.size()); }