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/08/27 22:25:49 UTC
svn commit: r1517971 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm:
JobManagerConverter.java scheduler/RmJob.java
Author: challngr
Date: Tue Aug 27 20:25:48 2013
New Revision: 1517971
URL: http://svn.apache.org/r1517971
Log:
UIMA-3215 Logging updates.
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/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=1517971&r1=1517970&r2=1517971&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 Aug 27 20:25:48 2013
@@ -18,7 +18,10 @@
*/
package org.apache.uima.ducc.rm;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.uima.ducc.common.Node;
@@ -855,9 +858,9 @@ public class JobManagerConverter
continue;
}
- Map<DuccId, IResource> all_shares = new HashMap<DuccId, IResource>();
- Map<DuccId, IResource> shrunken_shares = new HashMap<DuccId, IResource>();
- Map<DuccId, IResource> expanded_shares = new HashMap<DuccId, IResource>();
+ Map<DuccId, IResource> all_shares = new LinkedHashMap<DuccId, IResource>();
+ Map<DuccId, IResource> shrunken_shares = new LinkedHashMap<DuccId, IResource>();
+ Map<DuccId, IResource> expanded_shares = new LinkedHashMap<DuccId, IResource>();
Map<Share, Share> shares = null;
Map<Share, Share> redrive = null;
@@ -866,7 +869,9 @@ public class JobManagerConverter
} else {
shares = j.getAssignedShares();
if ( shares != null ) {
- for ( Share s : shares.values() ) {
+ ArrayList<Share> sorted = new ArrayList<Share>(shares.values());
+ Collections.sort(sorted, new RmJob.ShareByInvestmentSorter());
+ for ( Share s : sorted ) {
Resource r = new Resource(s.getId(), s.getNode(), s.isPurged(), s.getShareOrder());
all_shares.put(s.getId(), r);
}
@@ -1021,5 +1026,6 @@ public class JobManagerConverter
return (nodes.size() != 0);
}
+
}
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=1517971&r1=1517970&r2=1517971&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 Aug 27 20:25:48 2013
@@ -913,14 +913,7 @@ public class RmJob
*/
int getProjectedCap()
{
- String methodName = "getPrjCap"; // want this to line up with getJobCap in logs
- if ( init_wait ) { // no cap if not initialized, because we don't know. other caps will dominate.
- return Integer.MAX_VALUE;
- }
-
- if ( time_per_item == Double.NaN ) {
- return Integer.MAX_VALUE;
- }
+ String methodName = "getPrjCap"; // want this to line up with getJobCap in logs
// Get average init time
int count = 0;
@@ -951,13 +944,22 @@ public class RmJob
long future = Math.max(nquestions_remaining - projected, 0); // work still to do after doubling
logger.info(methodName, getId(), username, "O", getShareOrder(),"T", target, "NTh", (nprocesses * threads), "TI", avg_init,
- "TR", (long) time_per_item,
+ "TR", time_per_item,
"R", String.format("%.4e", rate),
"QR", nquestions_remaining, "P", projected, "F", future,
+ "ST", submit_time,
"return", (future / threads));
- int answer = (int) future / threads;
- if ( (future % threads ) > 0 ) answer++;
+ int answer = 0;
+
+ if ( init_wait || (time_per_item == Double.NaN) ) { // no cap if not initialized, or no per-itme time yet
+ // (We could exit sooner but for debugging purposes we very much want that log statement just above even
+ // if there's some junk in it.)
+ answer = Integer.MAX_VALUE;
+ } else {
+ answer = (int) future / threads;
+ if ( (future % threads ) > 0 ) answer++;
+ }
return answer; // number of processes we expect to need
// in the future
@@ -1246,6 +1248,7 @@ public class RmJob
shares = countInstances();
}
+ if ( name == null ) name = "";
// 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";
String jid = String.format("%1s%10s", getShortType(), id.toString()).replace(' ', '_');
@@ -1294,7 +1297,7 @@ public class RmJob
//
// Order shares by INCREASING investment
//
- class ShareByInvestmentSorter
+ public static class ShareByInvestmentSorter
implements Comparator<Share>
{
public int compare(Share s1, Share s2)