You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2014/03/07 12:57:11 UTC

git commit: TAJO-672: Wrong progress status when overwrites to partition table. (hyoungjunkim via hyunsik)

Repository: incubator-tajo
Updated Branches:
  refs/heads/master bd673e645 -> 1fb837e36


TAJO-672: Wrong progress status when overwrites to partition table. (hyoungjunkim via hyunsik)


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

Branch: refs/heads/master
Commit: 1fb837e36487227b159129ac724ac8bc13ab1f55
Parents: bd673e6
Author: Hyunsik Choi <hy...@apache.org>
Authored: Fri Mar 7 20:56:58 2014 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Fri Mar 7 20:56:58 2014 +0900

----------------------------------------------------------------------
 CHANGES.txt                                                 | 3 +++
 .../src/main/java/org/apache/tajo/worker/Task.java          | 8 +++++++-
 .../src/test/java/org/apache/tajo/worker/TestFetcher.java   | 9 +++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/1fb837e3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 5082b8d..552d7ec 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -273,6 +273,9 @@ Release 0.8.0 - unreleased
 
   BUG FIXES
 
+    TAJO-672: Wrong progress status when overwrites to partition table.
+    (hyoungjunkim via hyunsik)
+
     TAJO-663: CREATE TABLE USING RAW doesn't throw ERROR. (jaehwa)
 
     TAJO-665: sort buffer size must be dealt as long type values. 

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/1fb837e3/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
index c542afb..30f56ee 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
@@ -18,6 +18,7 @@
 
 package org.apache.tajo.worker;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang.exception.ExceptionUtils;
@@ -588,6 +589,11 @@ public class Task {
     }
   }
 
+  @VisibleForTesting
+  public static float adjustFetchProcess(int totalFetcher, int remainFetcher) {
+    return ((float)(totalFetcher - remainFetcher)) / (float)totalFetcher * FETCHER_PROGRESS;
+  }
+
   private synchronized void fetcherFinished(TaskAttemptContext ctx) {
     int fetcherSize = fetcherRunners.size();
     if(fetcherSize == 0) {
@@ -599,7 +605,7 @@ public class Task {
       if (numRunningFetcher == 0) {
         context.setProgress(FETCHER_PROGRESS);
       } else {
-        context.setProgress(((float)(fetcherSize - numRunningFetcher)) / numRunningFetcher * FETCHER_PROGRESS);
+        context.setProgress(adjustFetchProcess(fetcherSize, numRunningFetcher));
       }
     } finally {
       ctx.getFetchLatch().countDown();

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/1fb837e3/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestFetcher.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestFetcher.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestFetcher.java
index aa4a20c..0c47320 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestFetcher.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestFetcher.java
@@ -82,4 +82,13 @@ public class TestFetcher {
     FileStatus outStatus = fs.getFileStatus(new Path(OUTPUT_DIR, "data"));
     assertEquals(inStatus.getLen(), outStatus.getLen());
   }
+
+  @Test
+  public void testAdjustFetchProcess() {
+    assertEquals(0.05f, Task.adjustFetchProcess(10, 9), 0);
+    assertEquals(0.1f, Task.adjustFetchProcess(10, 8), 0);
+    assertEquals(0.25f, Task.adjustFetchProcess(10, 5), 0);
+    assertEquals(0.45f, Task.adjustFetchProcess(10, 1), 0);
+    assertEquals(0.5f, Task.adjustFetchProcess(10, 0), 0);
+  }
 }