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()