Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

There is a SpeculativeScheduler thread detecting long tail executions periodically in each ExecutionJobVertex according to the criteria mentioned above. Its member-variables include SchedulerNG, ExecutionVertex[], and so on. SchedulerNG is used for scheduling the speculative executions and the ExecutionVertex[] is used for getting execution state timestamp in this ExecutionJobVertex.

Image RemovedImage Added

Modification of scheduler logicality

...

Third, IP of original execution location will be added to JobBlackList in JobBlackListTracker. 

Image RemovedImage Added

Remove element in black list

...

For example, as shown below.

Image RemovedImage Added

(a) In an ExecutionVertex, after execution_1 has consumed inputSplit_0, it goes on to consume inputSplit_1.

...

As shown below, for batch job with blocking shuffle(similar to MapReduce). Because of introducing speculative execution, all reduce executions in an ExecutionVertex will consume the resultPartition of map ExecutionVertex's fastest finished execution.


Image RemovedImage Added

  • Once all map ExecutionVertexs finish, all executions in reduce ExecutionVertex should be notified to update its inputChannels from UNKNOW to LOCAL/REMOTE. So there are some modifications in Execution.updatePartitionConsumers().

...