TAJO-2126: Allow parallel execution of non-leaf sibling ExecutionBlocks.
Closes #1003
diff --git a/CHANGES b/CHANGES
index 7ac7d83..38aedda 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,9 @@
IMPROVEMENT
+ TAJO-2126: Allow parallel execution of non-leaf sibling ExecutionBlocks.
+ (jihooon)
+
TAJO-2127: Use Type instead of DataType for EvalNode. (hyunsik)
TAJO-2125: Detect JAVA_HOME on OSX, if JAVA_HOME is not set. (jinho)
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/ParallelExecutionQueue.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/ParallelExecutionQueue.java
index 23e309f..d197bda 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/ParallelExecutionQueue.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/ParallelExecutionQueue.java
@@ -101,17 +101,8 @@
}
private boolean isExecutableNow(ExecutionBlock current) {
- ExecutionBlock parent = masterPlan.getParent(current);
- List<ExecutionBlock> dependents = masterPlan.getChilds(current);
- if (parent != null && masterPlan.getChannel(current.getId(), parent.getId()).needShuffle()) {
- // add all children of sibling for partitioning
- dependents = new ArrayList<>();
- for (ExecutionBlock sibling : masterPlan.getChilds(parent)) {
- dependents.addAll(masterPlan.getChilds(sibling));
- }
- }
- for (ExecutionBlock child : dependents) {
+ for (ExecutionBlock child : masterPlan.getChilds(current)) {
if (!executed.contains(child.getId())) {
return false; // there's something should be done before this
}