Author: burn
Date: Fri Apr 29 15:21:12 2016
New Revision: 1741647

URL: http://svn.apache.org/viewvc?rev=1741647&view=rev
Log:
UIMA-4861 Rename old property when merging the site properties. Drop ducc limit 
for pipelines-per-process. Make pipelines-per-job limit the max-processes

Modified:
    uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_props_manager
    uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties
    
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex
    
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/factory/JobFactory.java

Modified: uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_props_manager
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_props_manager?rev=1741647&r1=1741646&r2=1741647&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_props_manager (original)
+++ uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_props_manager Fri Apr 29 
15:21:12 2016
@@ -50,6 +50,16 @@ class DuccPropManager:
 
         file3_props = Properties()
 
+        # Check for a site specification override of the property renamed in 
2.1.0
+        oname = 'ducc.threads.limit'
+        nname = 'ducc.job.max.pipelines.count'
+        prop = file2_props.get_property(oname)
+        if prop != None:
+            prop.c.append('# RENAMED by merger ' + time.strftime('%c') + ' old 
name: ' + prop.k)
+            prop.k = nname
+            file2_props.put_property(prop)
+            file2_props.delete(oname)
+
         # first pass, create merged props with stuff in base props file 
updated with delta
         for k in file1_props.get_keys():
             base = file1_props.get_property(k)

Modified: 
uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties?rev=1741647&r1=1741646&r2=1741647&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties 
(original)
+++ uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties Fri 
Apr 29 15:21:12 2016
@@ -163,9 +163,6 @@ ducc.ws.jvm.args           = -Xmx2G -Dja
 # Note: formerly known as ducc.threads.limit
 ducc.job.max.pipelines.count = 5000
 
-# Max number of work-item CASes for each process (default is "unlimited")
-ducc.process.max.pipelines.count = 100
-
 # ========== CLI Configuration block ==========
 # These environment values are included on job/service/AP submissions
 ducc.environment.propagated = USER HOME LANG DUCC_SERVICE_INSTANCE

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java?rev=1741647&r1=1741646&r2=1741647&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java
 Fri Apr 29 15:21:12 2016
@@ -90,7 +90,6 @@ public class DuccPropertiesResolver {
     
     //<UIMA-4612>
     public static final String ducc_job_max_pipelines_count = 
"ducc.job.max.pipelines.count";
-    public static final String ducc_process_max_pipelines_count = 
"ducc.process.max.pipelines.count";
     //</UIMA-4612>
     
     public static final String ducc_driver_jvm_args = "ducc.driver.jvm.args";

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex?rev=1741647&r1=1741646&r2=1741647&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex
 Fri Apr 29 15:21:12 2016
@@ -491,15 +491,6 @@
            \item[Type] Local 
          \end{description}
 
-      \item[ducc.process.max.pipelines.count] \hfill \\
-         This enforces a maximum number of pipelines per process.
-
-         \begin{description}
-           \item[Default] 100
-           \item[Type] Local 
-         \end{description}
-
-
        \item[ducc.environment.propagated] \hfill \\
          This specifies the environmental variables whose values will be 
merged with the
          user-specified environment option on job, process and service 
submissions.

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/factory/JobFactory.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/factory/JobFactory.java?rev=1741647&r1=1741646&r2=1741647&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/factory/JobFactory.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/factory/JobFactory.java
 Fri Apr 29 15:21:12 2016
@@ -406,66 +406,40 @@ public class JobFactory implements IJobF
                job.setDriver(driver);
        }
        
-       private void check_max_job_pipelines(DuccWorkJob job, 
DuccSchedulingInfo schedulingInfo) {
+       private void checkSchedulingLimits(DuccWorkJob job, DuccSchedulingInfo 
schedulingInfo) {
                String methodName = "check_max_job_pipelines";
                long ducc_limit = 0;
                String p_limit;
-               p_limit = 
DuccPropertiesResolver.get(DuccPropertiesResolver.ducc_job_max_pipelines_count);
+               // Check the old name first in case it is in 
site.ducc.properties ... new name is in ducc.default.properties
+               p_limit = 
DuccPropertiesResolver.get(DuccPropertiesResolver.ducc_threads_limit);
                if(p_limit == null) {
-                       p_limit = 
DuccPropertiesResolver.get(DuccPropertiesResolver.ducc_threads_limit);
+                 p_limit = 
DuccPropertiesResolver.get(DuccPropertiesResolver.ducc_job_max_pipelines_count);
                    
                }
-               if (p_limit != null) {
-                       if (!p_limit.equals("unlimited")) {
-                               try {
-                                       ducc_limit = Long.parseLong(p_limit);
-                               }
-                               catch(Exception e) {
-                                       logger.error(methodName, 
job.getDuccId(), e);
-                               }
-                       }
+               if (p_limit != null && !p_limit.equals("unlimited")) { 
+                 try {
+                   ducc_limit = Long.parseLong(p_limit);
+                 }
+                 catch(Exception e) {
+                   logger.error(methodName, job.getDuccId(), e);
+                 }
                }
                if (ducc_limit <= 0) {
                        return;
                }
-               long user_limit = schedulingInfo.getLongProcessesMax();
-               logger.trace(methodName, job.getDuccId(), 
"user_limit"+"="+user_limit+" "+"ducc_limit"+"="+ducc_limit);
-               if(user_limit > ducc_limit) {
-                       logger.info(methodName, job.getDuccId(), "change max 
job pipelines from "+user_limit+" to " + ducc_limit);
-                       schedulingInfo.setLongProcessesMax(ducc_limit);
-               }
-       }
-       
-       private void check_max_process_pipelines(DuccWorkJob job, 
DuccSchedulingInfo schedulingInfo) {
-               String methodName = "check_max_process_pipelines";
-               int ducc_limit = 0;
-               String p_limit;
-               p_limit = 
DuccPropertiesResolver.get(DuccPropertiesResolver.ducc_process_max_pipelines_count);
-               if (p_limit != null) {
-                       if (!p_limit.equals("unlimited")) {
-                               try {
-                                       ducc_limit = Integer.parseInt(p_limit);
-                               }
-                               catch(Exception e) {
-                                       logger.error(methodName, 
job.getDuccId(), e);
-                               }
-                       }
-               }
-               if (ducc_limit <= 0) {
-                       return;
+               // Don't round up as that could exceed the ducc limit ... also 
restrict pipelines-per-process if too large !!
+               int pipelines_per_process = 
schedulingInfo.getIntThreadsPerProcess();
+               if (pipelines_per_process > ducc_limit) {
+                 schedulingInfo.setIntThreadsPerProcess((int) ducc_limit);
                }
-               int user_limit = schedulingInfo.getIntThreadsPerProcess();
-               logger.trace(methodName, job.getDuccId(), 
"user_limit"+"="+user_limit+" "+"ducc_limit"+"="+ducc_limit);
-               if(user_limit > ducc_limit) {
-                       logger.info(methodName, job.getDuccId(), "change max 
process pipelines from "+user_limit+" to " + ducc_limit);
-                       schedulingInfo.setIntThreadsPerProcess(ducc_limit);
+               long processes_limit = ducc_limit / 
schedulingInfo.getIntThreadsPerProcess();
+               long user_limit = schedulingInfo.getLongProcessesMax();
+               logger.trace(methodName, job.getDuccId(), 
"user_limit"+"="+user_limit+" "+"ducc_processes_limit"+"="+processes_limit);
+               if(user_limit > processes_limit) {
+                       logger.info(methodName, job.getDuccId(), "change max 
job processes from "+user_limit+" to 
"+ducc_limit+"/"+schedulingInfo.getIntThreadsPerProcess());
+                       schedulingInfo.setLongProcessesMax(processes_limit);
                }
        }
-       
-       private void checkSchedulingLimits(DuccWorkJob job, DuccSchedulingInfo 
schedulingInfo) {
-               check_max_job_pipelines(job, schedulingInfo);
-               check_max_process_pipelines(job, schedulingInfo);
-       }
-       
+               
        public DuccWorkJob createJob(CommonConfiguration common, 
JobRequestProperties jobRequestProperties) throws 
ResourceUnavailableForJobDriverException {
                DuccWorkJob job = new DuccWorkJob();
                job.setDuccType(DuccType.Job);


Reply via email to