THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||
---|---|---|---|---|
| ||||
public class ExecutionVertex
implements AccessExecutionVertex, Archiveable<ArchivedExecutionVertex> {
private Execution fastestFinishedExecution = null;
private volatile boolean vertexFinished = false;
}
|
Some code should be modifyed to avoid cause problems when multiple executions in one ExecutionVertex finished at the same time.
A member-variable named vertexFinished was added in ExecutionVertex used for indicates whether this ExecutionVertex run finished and double checked locking pattern in ExecutionVertex.executionFinished().
finishPartitionsAndUpdateConsumers() in Execution.markFinished() should be moved to ExecutionVertex.executionFinished() and be called after double checked locking pattern in ExecutionVertex.executionFinished()
when the down stream execution meet DataConsumptionException. It will restart with the upstream execution that has been finished.
...