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 2015/03/10 21:09:00 UTC

svn commit: r1665671 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/ uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/ uima-ducc-transport/src/main/java/org/apache/uima/ducc/transp...

Author: challngr
Date: Tue Mar 10 20:08:59 2015
New Revision: 1665671

URL: http://svn.apache.org/r1665671
Log:
UIMA-4275 Cleanup, tuning.  Make sure WaitingForResources always publishes and logs reason.

Modified:
    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/ResourceClass.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/RmStateDuccEvent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/RmJobState.java

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=1665671&r1=1665670&r2=1665671&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 Mar 10 20:08:59 2015
@@ -168,7 +168,7 @@ class NodePool
                 ret -= gbo[order];
             }
         }
-        logger.info(methodName, null, "Shares available for", id, ":", ret);
+        logger.trace(methodName, null, "Shares available for", id, ":", ret);
         // now accumulate the kid's contribution
         for ( NodePool np : children.values() ) {
             ret += np.countAssignableShares(order);
@@ -686,7 +686,7 @@ class NodePool
             int v_order = m.getVirtualShareOrder();
             int r_order = m.getShareOrder();
 
-            logger.info(methodName, null, m.getId(), "order", order, "v_order", v_order, "r_order", r_order);
+            logger.trace(methodName, null, m.getId(), "order", order, "v_order", v_order, "r_order", r_order);
 
             if ( v_order == r_order ) {
                 nMachinesByOrder[r_order]--;
@@ -1347,7 +1347,7 @@ class NodePool
 
         int cnt = countFreeMachines(order, enforce);
         if ( cnt < needed ) {
-            logger.info(methodName, job.getId(), "Reservation waiting on evictions");
+            logger.info(methodName, job.getId(), "Reservation waiting on evictions.  Have", cnt, "free, needed", needed);
             setupPreemptions(needed-cnt, order, enforce);  // if returns 0, must refuse the job
             return;
         }
@@ -1663,6 +1663,7 @@ class NodePool
             } else {
                 sb.append("notfound ");
             }
+            if ( j.countNShares() == 0 ) j.setReason("Waiting for preemptions.");
         }
         logger.info(methodName, null, sb.toString());
         return expansions;

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=1665671&r1=1665670&r2=1665671&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 Mar 10 20:08:59 2015
@@ -1289,7 +1289,7 @@ public class NodepoolScheduler
                     }
                     logger.info(methodName, j.getId(), "Assign:", nSharesToString(count, j.getShareOrder()));
                 } else {
-                    j.setReason("Waiting on evictions.");
+                    j.setReason("Waiting for preemptions.");
                 }
 
 
@@ -1466,6 +1466,10 @@ public class NodepoolScheduler
                 // Either shares were assigned or not.  If not we wait for evictions, otherwise it is
                 // fully allocated. Nothing more to do here.
                 //
+                if ( j.countNShares() == 0 ) {
+                    j.setReason("Waiting for preemptions.");
+                }
+
             }
 
         }
@@ -1897,7 +1901,13 @@ public class NodepoolScheduler
             }
             logger.debug(methodName, nj.getId(), "Given_per_round", given_per_round, "given", given, "needed", needed);
         } while ( (given_per_round > 0) && ( given < needed ));
-        
+
+        // Sometimes we can directly reassign a share, in which case the job isn't waiting any more.
+        // We only care about setting a message if the poor thing is still totally starved of resources.
+        if ( nj.countNShares() == 0 ) {
+            nj.setReason("Waiting for defragmentation.");
+        }
+
         return given;
     }
 
@@ -2032,7 +2042,6 @@ public class NodepoolScheduler
                 }
             }
             logger.info(methodName, nj.getId(), "Could not get enough from the rich. Asked for", needy.get(nj), "still needing", needed);
-            nj.setReason("Waiting on defragmentation.");
         }
     }
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/ResourceClass.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/ResourceClass.java?rev=1665671&r1=1665670&r2=1665671&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/ResourceClass.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/ResourceClass.java Tue Mar 10 20:08:59 2015
@@ -392,7 +392,7 @@ public class ResourceClass
         //  Then, if gbo < resourcesavailable we can return true, else return false
         //
         int resourcesAvailable = nodepool.countAssignableShares(order);      // recurses, covers all relevent rc's
-        logger.info(methodName, null, "Class", id, "nodepool", nodepool.getId(), "order", order, "wbo", wbo, "gbo", gbo, "resourcesAvailable", resourcesAvailable);
+        logger.trace(methodName, null, "Class", id, "nodepool", nodepool.getId(), "order", order, "wbo", wbo, "gbo", gbo, "resourcesAvailable", resourcesAvailable);
 
         if ( wbo <= 0 ) return false;
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/RmStateDuccEvent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/RmStateDuccEvent.java?rev=1665671&r1=1665670&r2=1665671&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/RmStateDuccEvent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/RmStateDuccEvent.java Tue Mar 10 20:08:59 2015
@@ -99,12 +99,15 @@ public class RmStateDuccEvent
                 buf.append(String.format("%s %s\n\tRefused: %s\n", j.getDuccType(), j.getId().getFriendly(), j.getReason()));
                 continue;
             }
+            
+            String reason = j.getReason();
+            if (reason.equals("<none>")) reason = "";
 
             Map<DuccId, IResource> existing = j.getResources();
             if ( existing == null ) {
-                buf.append(String.format("%s %s\n\tExisting[0]", j.getDuccType(), j.getId().getFriendly()));
+                buf.append(String.format("%s %s %s\n\tExisting[0]", j.getDuccType(), j.getId().getFriendly(), reason));
             } else {
-                buf.append(String.format("%s %s\n\tExisting[%d]: ", j.getDuccType(), j.getId().getFriendly(), existing.size()));
+                buf.append(String.format("%s %s %s\n\tExisting[%d]: ", j.getDuccType(), j.getId().getFriendly(), reason, existing.size()));
                 for ( IResource r : existing.values() ) {                    
                     buf.append(r.toString());
                     buf.append(" ");

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/RmJobState.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/RmJobState.java?rev=1665671&r1=1665670&r2=1665671&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/RmJobState.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/RmJobState.java Tue Mar 10 20:08:59 2015
@@ -101,7 +101,7 @@ public class RmJobState implements IRmJo
 
     public void setReason(String r)
     {
-        this.reason = reason;
+        if ( r != null ) this.reason = r;
     }
 
     public DuccType getDuccType()