You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2016/04/04 20:27:51 UTC

svn commit: r1737719 - /uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java

Author: degenaro
Date: Mon Apr  4 18:27:51 2016
New Revision: 1737719

URL: http://svn.apache.org/viewvc?rev=1737719&view=rev
Log:
UIMA-4882 DUCC Resource Manager (RM) does not adequately expand Job Processes (JPs)

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.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=1737719&r1=1737718&r2=1737719&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 Mon Apr  4 18:27:51 2016
@@ -360,17 +360,31 @@ public class JobManagerConverter
             	arith_mean = stats.getMean();
             }
 
+            // The skewed mean is the arithmetic mean of work items both completed 
+            // (if any) and active (if any).  All completed work items contribute,
+            // but only active work items whose time already exceeds the mean of
+            // the completed ones contribute.
+            
+            // To schedule, we always use the skewed_mean when it is > 0.
+            
+            double skewed_mean = si.getAvgTimeForWorkItemsSkewedByActive();
+            
             logger.info(methodName, job.getDuccId(), 
-                        String.format("tot: %d %s -> %s compl: %s err: %s rem: %d mean: %f",
+                        String.format("tot: %d %s -> %s compl: %s err: %s rem: %d mean: %f skew: %f",
                                       total_work,  
                                       state,
                                       job.getStateObject(),
                                       si.getWorkItemsCompleted(),    // note this comes in as string (!) from OR
                                       si.getWorkItemsError(),        // also string
                                       remaining_work,
-                                      arith_mean
+                                      arith_mean,
+                                      skewed_mean
                                       ));
 
+            if(skewed_mean > 0) {
+            	arith_mean = skewed_mean;
+            }
+            
             if ( max_shares != existing_max_shares ) {
                 j.setMaxShares(max_shares);
                 logger.info(methodName, job.getDuccId(), "Max shares adjusted from", existing_max_shares, "to", max_shares, "(incoming)",