Author: challngr
Date: Tue Oct 15 14:45:05 2013
New Revision: 1532365

URL: http://svn.apache.org/r1532365
Log:
UIMA-3349 Insure already-fulfilled fixed/reserve allocation is not a candidate 
for defrag.

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/RmJob.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java?rev=1532365&r1=1532364&r2=1532365&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java
 Tue Oct 15 14:45:05 2013
@@ -817,8 +817,18 @@ public class JobManagerConverter
 
         // otherwise, if the shares it has allocated is < the number it wants, 
it is in fact
         // pending but not complete.
-        logger.trace(methodName, j.getId(), "countNShares", j.countNShares(), 
"countInstances", j.countInstances());
-        return ( j.countNShares() < j.countInstances());
+        logger.info(methodName, j.getId(), "countNShares", j.countNShares(), 
"countInstances", j.countInstances(), "isComplete", j.isCompleted());
+
+        if ( j.isCompleted() ) {
+            return false;
+        }
+
+        if ( j.countNShares() == j.countInstances() ) {
+            j.markComplete();                  // non-preemptable, remember it 
finally got it's max
+            return false;
+        }
+
+        return (j.countNShares() < j.countInstances());
     }
 
     /**

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java?rev=1532365&r1=1532364&r2=1532365&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java
 Tue Oct 15 14:45:05 2013
@@ -1220,7 +1220,7 @@ class NodePool
         int order = j.getShareOrder();
         int given = 0;        
 
-        logger.debug(methodName, j.getId(), "counted", counted, "current", 
current, "needed", needed, "order", order, "given", given);
+        logger.info(methodName, j.getId(), "counted", counted, "current", 
current, "needed", needed, "order", order, "given", given);
 
         if ( needed > 0 ) {
             whatof: {

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java?rev=1532365&r1=1532364&r2=1532365&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodepoolScheduler.java
 Tue Oct 15 14:45:05 2013
@@ -1954,6 +1954,8 @@ public class NodepoolScheduler
                         must_defrag = true;
                     }                    
                 } else {                                       // if not 
fair-share, must always try to defrag if needed
+                    if ( j.isCompleted() ) continue;           // 
non-preemptable, this means it has at least once received
+                                                               // its full 
allocation, and therefore cannot be needy
                     if ( needed > 0 ) {
                         jobmap.put(j, needed);   
                         must_defrag = true;

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/RmJob.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/RmJob.java?rev=1532365&r1=1532364&r2=1532365&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/RmJob.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/RmJob.java
 Tue Oct 15 14:45:05 2013
@@ -173,6 +173,13 @@ public class RmJob
         return is_reservation;
     }
 
+    /**
+     * For non-preemptable, remember max alloc has been reached, so we don't 
try to expand if 
+     * used for a job-job.
+     * 
+     * For preemptable, must remember the job completed for defrag, because it 
could stick 
+     * around a while after completion.
+     */
     public void markComplete()
     {
         completed = true;
@@ -1253,9 +1260,9 @@ public class RmJob
     public String toString()
     {
         int shares = assignedShares.size() + pendingShares.size();        
-        if ( getSchedulingPolicy() != Policy.FAIR_SHARE ) {
-            shares = countInstances();
-        }
+        //if ( getSchedulingPolicy() != Policy.FAIR_SHARE ) {
+        //    shares = countInstances();
+        //}
 
         //                    1       2    3    4   5   6   7   8   9  10  11  
12 13
         String format = "%11s %30.30s %10s %10s %6d %5d %7d %3d %6d %6d %8d 
%8s %9d";


Reply via email to