Versions Compared

Key

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

...

Code Block
languagejava
titleDefaultExecutionGraph
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.

...