You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by jh...@apache.org on 2015/09/16 05:39:57 UTC

tajo git commit: TAJO-1851: Can not release a different rack task.

Repository: tajo
Updated Branches:
  refs/heads/master 7d97284a9 -> a6334e989


TAJO-1851: Can not release a different rack task.

Closes #760


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/a6334e98
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/a6334e98
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/a6334e98

Branch: refs/heads/master
Commit: a6334e989e43f9aae5b8c65428c99249d2f77a1d
Parents: 7d97284
Author: Jinho Kim <jh...@apache.org>
Authored: Wed Sep 16 12:38:48 2015 +0900
Committer: Jinho Kim <jh...@apache.org>
Committed: Wed Sep 16 12:38:48 2015 +0900

----------------------------------------------------------------------
 CHANGES                                                     | 2 ++
 .../org/apache/tajo/querymaster/DefaultTaskScheduler.java   | 9 +++++----
 2 files changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/a6334e98/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 5603c34..521ab20 100644
--- a/CHANGES
+++ b/CHANGES
@@ -266,6 +266,8 @@ Release 0.11.0 - unreleased
 
   BUG FIXES
 
+    TAJO-1851: Can not release a different rack task. (jinho)
+
     TAJO-1830: Fix race condition in HdfsServiceTracker. (jinho)
 
     TAJO-1727: Avoid to create external table using TableSpace. (jaehwa)

http://git-wip-us.apache.org/repos/asf/tajo/blob/a6334e98/tajo-core/src/main/java/org/apache/tajo/querymaster/DefaultTaskScheduler.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/querymaster/DefaultTaskScheduler.java b/tajo-core/src/main/java/org/apache/tajo/querymaster/DefaultTaskScheduler.java
index d380295..b65b5a9 100644
--- a/tajo-core/src/main/java/org/apache/tajo/querymaster/DefaultTaskScheduler.java
+++ b/tajo-core/src/main/java/org/apache/tajo/querymaster/DefaultTaskScheduler.java
@@ -818,7 +818,7 @@ public class DefaultTaskScheduler extends AbstractTaskScheduler {
               int nodes = context.getMasterContext().getWorkerMap().size();
               //this part is to control the assignment of tail and remote task balancing per node
               int tailLimit = 1;
-              if (remainingScheduledObjectNum() > 0) {
+              if (remainingScheduledObjectNum() > 0 && nodes > 0) {
                 tailLimit = Math.max(remainingScheduledObjectNum() / nodes, 1);
               }
 
@@ -835,9 +835,6 @@ public class DefaultTaskScheduler extends AbstractTaskScheduler {
           // rack-local allocation
           //////////////////////////////////////////////////////////////////////
           attemptId = allocateRackTask(host);
-          if (attemptId != null && hostVolumeMapping != null) {
-            hostVolumeMapping.lastAssignedVolumeId.put(attemptId, HostVolumeMapping.REMOTE);
-          }
 
           //////////////////////////////////////////////////////////////////////
           // random node allocation
@@ -848,6 +845,10 @@ public class DefaultTaskScheduler extends AbstractTaskScheduler {
               leafTasks.remove(attemptId);
             }
           }
+
+          if (attemptId != null && hostVolumeMapping != null) {
+            hostVolumeMapping.lastAssignedVolumeId.put(attemptId, HostVolumeMapping.REMOTE);
+          }
           rackAssign++;
         } else {
           localAssign++;