You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ch...@apache.org on 2013/10/02 21:08:06 UTC

svn commit: r1528594 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler: NodepoolScheduler.java Scheduler.java

Author: challngr
Date: Wed Oct  2 19:08:05 2013
New Revision: 1528594

URL: http://svn.apache.org/r1528594
Log:
UIMA-3215 Clarify refusal for silly amounts of memory.  And don't defrag a refused job!

Modified:
    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/Scheduler.java

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=1528594&r1=1528593&r2=1528594&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 Wed Oct  2 19:08:05 2013
@@ -1917,6 +1917,10 @@ public class NodepoolScheduler
             logger.info(methodName, null, String.format(headerfmt, "Nodepool", "User", "PureFS", "NSh", "Counted", "Needed", "O"), "Class:", rc.getName());
             for ( IRmJob j : allJobs.values() ) {
 
+                if ( j.isRefused() ) {
+                    continue;
+                }
+
                 int counted = 0;
                 switch ( rc.getPolicy() ) {
                     case FAIR_SHARE:

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java?rev=1528594&r1=1528593&r2=1528594&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java Wed Oct  2 19:08:05 2013
@@ -59,6 +59,7 @@ public class Scheduler
     // Integer epoch = 5;                                                 // scheduling epoch, seconds
 
     NodePool[] nodepools;
+    int max_order = 0;
 
     //
     // Fair-share and fixed-share use shares only, not machines
@@ -892,6 +893,11 @@ public class Scheduler
                     continue;
                 }
 
+                if ( share_order > max_order ) {
+                    upd.refuse(j, "Memory requested " + j.getMemory() + "GB exceeds the capacity of any machine in the cluster.");
+                    continue;
+                }
+
                 /**
                  * We want to allow this - a normal job, submitted to a reservation class.
                    if ( (prclass.getPolicy() == Policy.RESERVE ) && ( ! j.isReservation() ) ) {
@@ -991,6 +997,7 @@ public class Scheduler
                 share_order = m.getShareOrder();
             }
             
+            max_order = Math.max(share_order, max_order);
             m = np.nodeArrives(node, share_order);                         // announce to the nodepools
         }
     }