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 2014/11/04 19:18:38 UTC
svn commit: r1636674 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src:
main/java/org/apache/uima/ducc/container/common/
main/java/org/apache/uima/ducc/container/jd/fsm/wi/
main/java/org/apache/uima/ducc/container/jd/mh/ main/java/org/apache/u...
Author: degenaro
Date: Tue Nov 4 18:18:38 2014
New Revision: 1636674
URL: http://svn.apache.org/r1636674
Log:
UIMA-4069 Redesign of JD toward the main goal of classpath separation for container (system) code.
WorkItem statistics: Finished min/max/avg; Running min/max
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Assertion.java (with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IRunningWorkItemStatistics.java (with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/RunningWorkItemStatistics.java (with props)
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/Dispatcher.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItemStatistics.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/Tod.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItemStatistics.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestDispatcher.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Assertion.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Assertion.java?rev=1636674&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Assertion.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Assertion.java Tue Nov 4 18:18:38 2014
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.common;
+
+import org.apache.uima.ducc.container.jd.JobDriver;
+
+public class Assertion {
+
+ private static IContainerLogger logger = ContainerLogger.getLogger(JobDriver.class, IContainerLogger.Component.JD.name());
+
+ public static void nonNegative(long value) {
+ String location = "nonNegative";
+ if(value < 0) {
+ logger.error(location, IEntityId.null_id, value);
+ throw new RuntimeException();
+ }
+ }
+}
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Assertion.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java Tue Nov 4 18:18:38 2014
@@ -24,7 +24,11 @@ public class Standardize {
crFetches,
crTotal,
preemptions,
- clockedMillisMax,
+ finishedMillisMax,
+ finishedMillisMin,
+ finishedMillisAvg,
+ runningMillisMax,
+ runningMillisMin,
state,
event,
curr,
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java Tue Nov 4 18:18:38 2014
@@ -60,6 +60,7 @@ public class ActionEnd implements IActio
mb.append(Standardize.Label.seqNo.get()+metaCas.getSystemKey());
mb.append(Standardize.Label.remote.get()+rwi.toString());
logger.info(location, IEntityId.null_id, mb.toString());
+ wi.resetTods();
}
else {MessageBuffer mb = new MessageBuffer();
mb.append("No CAS found for processing");
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java Tue Nov 4 18:18:38 2014
@@ -61,6 +61,7 @@ public class ActionGet implements IActio
IEvent event = null;
//
if(metaCas != null) {
+ wi.resetTods();
wi.setTodGet();
event = WiFsm.CAS_Available;
MessageBuffer mb = new MessageBuffer();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/Dispatcher.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/Dispatcher.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/Dispatcher.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/Dispatcher.java Tue Nov 4 18:18:38 2014
@@ -38,8 +38,10 @@ import org.apache.uima.ducc.container.jd
import org.apache.uima.ducc.container.jd.mh.iface.IProcessInfo;
import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerIdentity;
import org.apache.uima.ducc.container.jd.mh.impl.OperatingInfo;
+import org.apache.uima.ducc.container.jd.wi.IRunningWorkItemStatistics;
import org.apache.uima.ducc.container.jd.wi.IWorkItem;
import org.apache.uima.ducc.container.jd.wi.IWorkItemStatistics;
+import org.apache.uima.ducc.container.jd.wi.RunningWorkItemStatistics;
import org.apache.uima.ducc.container.jd.wi.WorkItem;
import org.apache.uima.ducc.container.net.iface.IMetaCas;
import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
@@ -61,15 +63,24 @@ public class Dispatcher {
CasManager cm = jdc.getCasManager();
CasManagerStats cms = cm.getCasManagerStats();
IWorkItemStatistics wis = jdc.getWorkItemStatistics();
+ IRunningWorkItemStatistics rwis = RunningWorkItemStatistics.getCurrent();
oi.setWorkItemCrTotal(cms.getCrTotal());
oi.setWorkItemCrFetches(cms.getCrGets());
oi.setWorkItemPreemptions(cms.getNumberOfPreemptions());
- oi.setWorkItemClockedMillisMax(wis.getMillisMax());
+ oi.setWorkItemFinishedMillisMin(wis.getMillisMin());
+ oi.setWorkItemFinishedMillisMax(wis.getMillisMax());
+ oi.setWorkItemFinishedMillisAvg(wis.getMillisAvg());
+ oi.setWorkItemRunningMillisMin(rwis.getMillisMin());
+ oi.setWorkItemRunningMillisMax(rwis.getMillisMax());
MessageBuffer mb = new MessageBuffer();
mb.append(Standardize.Label.crTotal.get()+oi.getWorkItemCrTotal());
mb.append(Standardize.Label.crFetches.get()+oi.getWorkItemCrFetches());
mb.append(Standardize.Label.preemptions.get()+oi.getWorkItemPreemptions());
- mb.append(Standardize.Label.clockedMillisMax.get()+oi.getWorkItemClockedMillisMax());
+ mb.append(Standardize.Label.finishedMillisMin.get()+oi.getWorkItemFinishedMillisMin());
+ mb.append(Standardize.Label.finishedMillisMax.get()+oi.getWorkItemFinishedMillisMax());
+ mb.append(Standardize.Label.finishedMillisAvg.get()+oi.getWorkItemFinishedMillisAvg());
+ mb.append(Standardize.Label.runningMillisMin.get()+oi.getWorkItemRunningMillisMin());
+ mb.append(Standardize.Label.runningMillisMax.get()+oi.getWorkItemRunningMillisMax());
logger.debug(location, IEntityId.null_id, mb.toString());
retVal = oi;
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java Tue Nov 4 18:18:38 2014
@@ -49,7 +49,20 @@ public interface IOperatingInfo {
//
- public void setWorkItemClockedMillisMax(long value);
- public long getWorkItemClockedMillisMax();
+ public void setWorkItemFinishedMillisMin(long value);
+ public long getWorkItemFinishedMillisMin();
+ public void setWorkItemFinishedMillisMax(long value);
+ public long getWorkItemFinishedMillisMax();
+
+ public void setWorkItemFinishedMillisAvg(long value);
+ public long getWorkItemFinishedMillisAvg();
+
+ //
+
+ public void setWorkItemRunningMillisMin(long value);
+ public long getWorkItemRunningMillisMin();
+
+ public void setWorkItemRunningMillisMax(long value);
+ public long getWorkItemRunningMillisMax();
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java Tue Nov 4 18:18:38 2014
@@ -32,7 +32,12 @@ public class OperatingInfo implements IO
private int jpUserProcessingTimeouts = 0;
private int jpUserProcessingErrorRetries = 0;
- private long clockedMillisMax = 0;
+ private long finishedMillisMin = 0;
+ private long finishedMillisMax = 0;
+ private long finishedMillisAvg = 0;
+
+ private long runningMillisMin = 0;
+ private long runningMillisMax = 0;
@Override
public void setWorkItemCrTotal(int value) {
@@ -125,13 +130,53 @@ public class OperatingInfo implements IO
}
@Override
- public void setWorkItemClockedMillisMax(long value) {
- clockedMillisMax = value;
+ public void setWorkItemFinishedMillisMin(long value) {
+ finishedMillisMin = value;
+ }
+
+ @Override
+ public long getWorkItemFinishedMillisMin() {
+ return finishedMillisMin;
+ }
+
+ @Override
+ public void setWorkItemFinishedMillisMax(long value) {
+ finishedMillisMax = value;
+ }
+
+ @Override
+ public long getWorkItemFinishedMillisMax() {
+ return finishedMillisMax;
+ }
+
+ @Override
+ public void setWorkItemFinishedMillisAvg(long value) {
+ finishedMillisAvg = value;
+ }
+
+ @Override
+ public long getWorkItemFinishedMillisAvg() {
+ return finishedMillisAvg;
+ }
+
+ @Override
+ public void setWorkItemRunningMillisMin(long value) {
+ runningMillisMin = value;
+ }
+
+ @Override
+ public long getWorkItemRunningMillisMin() {
+ return runningMillisMin;
+ }
+
+ @Override
+ public void setWorkItemRunningMillisMax(long value) {
+ runningMillisMax = value;
}
@Override
- public long getWorkItemClockedMillisMax() {
- return clockedMillisMax;
+ public long getWorkItemRunningMillisMax() {
+ return runningMillisMax;
}
}
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IRunningWorkItemStatistics.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IRunningWorkItemStatistics.java?rev=1636674&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IRunningWorkItemStatistics.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IRunningWorkItemStatistics.java Tue Nov 4 18:18:38 2014
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.jd.wi;
+
+public interface IRunningWorkItemStatistics {
+
+ public void setMillisMax(long value);
+ public long getMillisMax();
+
+ public void setMillisMin(long value);
+ public long getMillisMin();
+}
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IRunningWorkItemStatistics.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java Tue Nov 4 18:18:38 2014
@@ -29,13 +29,18 @@ public interface IWorkItem {
public void setFsm(IFsm value);
public IFsm getFsm();
+ public void resetTods();
+
public void setTodGet();
+ public void resetTodGet();
public long getTodGet();
public void setTodAck();
+ public void resetTodAck();
public long getTodAck();
public void setTodEnd();
+ public void resetTodEnd();
public long getTodEnd();
public long getMillisOperating();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItemStatistics.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItemStatistics.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItemStatistics.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItemStatistics.java Tue Nov 4 18:18:38 2014
@@ -22,4 +22,6 @@ public interface IWorkItemStatistics {
public void ended(IWorkItem wi);
public long getMillisMax();
+ public long getMillisMin();
+ public long getMillisAvg();
}
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/RunningWorkItemStatistics.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/RunningWorkItemStatistics.java?rev=1636674&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/RunningWorkItemStatistics.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/RunningWorkItemStatistics.java Tue Nov 4 18:18:38 2014
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.jd.wi;
+
+import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.uima.ducc.container.jd.JobDriverCommon;
+import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerIdentity;
+
+public class RunningWorkItemStatistics implements IRunningWorkItemStatistics {
+
+ private long millisMin = 0;
+ private long millisMax = 0;
+
+ public static RunningWorkItemStatistics getCurrent() {
+ long min = Long.MAX_VALUE;
+ long max = 0;
+ ConcurrentHashMap<IRemoteWorkerIdentity, IWorkItem> map = JobDriverCommon.getInstance().getMap();
+ for(Entry<IRemoteWorkerIdentity, IWorkItem> entry : map.entrySet()) {
+ IWorkItem wi = entry.getValue();
+ long time = wi.getMillisOperating();
+ if(time > 0) {
+ if(time > max) {
+ max = time;
+ }
+ if(time < min) {
+ min = time;
+ }
+ }
+ }
+ if(min > max) {
+ min = max;
+ }
+ RunningWorkItemStatistics retVal = new RunningWorkItemStatistics(min,max);
+ return retVal;
+ }
+
+ public RunningWorkItemStatistics(long min, long max) {
+ setMillisMin(min);
+ setMillisMax(max);
+ }
+
+ @Override
+ public void setMillisMin(long value) {
+ millisMin = value;
+ }
+
+ @Override
+ public long getMillisMin() {
+ return millisMin;
+ }
+
+ @Override
+ public void setMillisMax(long value) {
+ millisMax = value;
+ }
+
+ @Override
+ public long getMillisMax() {
+ return millisMax;
+ }
+
+}
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/RunningWorkItemStatistics.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/Tod.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/Tod.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/Tod.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/Tod.java Tue Nov 4 18:18:38 2014
@@ -18,15 +18,21 @@
*/
package org.apache.uima.ducc.container.jd.wi;
+import java.util.concurrent.atomic.AtomicLong;
+
public class Tod {
- private long tod = 0;
+ private AtomicLong tod = new AtomicLong(0);
public void set() {
- tod = System.currentTimeMillis();
+ tod.set(System.currentTimeMillis());
+ }
+
+ public void reset() {
+ tod.set(0);
}
public long get() {
- return tod;
+ return tod.get();
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java Tue Nov 4 18:18:38 2014
@@ -18,7 +18,10 @@
*/
package org.apache.uima.ducc.container.jd.wi;
+import org.apache.uima.ducc.container.common.Assertion;
import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
+import org.apache.uima.ducc.container.common.fsm.iface.IState;
+import org.apache.uima.ducc.container.jd.fsm.wi.WiFsm;
import org.apache.uima.ducc.container.net.iface.IMetaCas;
public class WorkItem implements IWorkItem {
@@ -56,11 +59,23 @@ public class WorkItem implements IWorkIt
}
@Override
+ public void resetTods() {
+ todGet.reset();
+ todAck.reset();
+ todEnd.reset();
+ }
+
+ @Override
public void setTodGet() {
todGet.set();
}
@Override
+ public void resetTodGet() {
+ todGet.reset();
+ }
+
+ @Override
public long getTodGet() {
return todGet.get();
}
@@ -69,6 +84,11 @@ public class WorkItem implements IWorkIt
public void setTodAck() {
todAck.set();
}
+
+ @Override
+ public void resetTodAck() {
+ todAck.reset();
+ }
@Override
public long getTodAck() {
@@ -81,6 +101,11 @@ public class WorkItem implements IWorkIt
}
@Override
+ public void resetTodEnd() {
+ todEnd.reset();
+ }
+
+ @Override
public long getTodEnd() {
return todEnd.get();
}
@@ -92,10 +117,17 @@ public class WorkItem implements IWorkIt
long end = getTodEnd();
if(start > 0) {
if(end == 0) {
- end = System.currentTimeMillis();
+ IState state = fsm.getStateCurrent();
+ if(state.getName().equals(WiFsm.CAS_Active.getName())) {
+ end = System.currentTimeMillis();
+ }
+ else {
+ end = start;
+ }
}
retVal = end - start;
}
+ Assertion.nonNegative(retVal);
return retVal;
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItemStatistics.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItemStatistics.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItemStatistics.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItemStatistics.java Tue Nov 4 18:18:38 2014
@@ -18,19 +18,46 @@
*/
package org.apache.uima.ducc.container.jd.wi;
+import org.apache.uima.ducc.container.common.Assertion;
import org.apache.uima.ducc.container.common.SynchronizedStats;
public class WorkItemStatistics implements IWorkItemStatistics {
private SynchronizedStats stats = new SynchronizedStats();
+ private long mintime = 0;
+
+ @Override
public void ended(IWorkItem wi) {
long time = wi.getMillisOperating();
+ Assertion.nonNegative(time);
+ if(time < mintime) {
+ time = mintime;
+ }
stats.addValue(time);
}
+ @Override
+ public long getMillisMin() {
+ double stat = stats.getMin();
+ if(stat == Double.MAX_VALUE) {
+ stat = 0;
+ };
+ long value = (long) stat;
+ return value;
+ }
+
+ @Override
public long getMillisMax() {
- long value = (long) stats.getMax();
+ double stat = stats.getMax();
+ long value = (long) stat;
+ return value;
+ }
+
+ @Override
+ public long getMillisAvg() {
+ double stat = stats.getMean();
+ long value = (long) stat;
return value;
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestDispatcher.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestDispatcher.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestDispatcher.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestDispatcher.java Tue Nov 4 18:18:38 2014
@@ -263,6 +263,12 @@ public class TestDispatcher {
randomPreempt(dispatcher,ti);
transAck(dispatcher,ti.getNode(),ti.getPid(),ti.getTid(),casNo);
randomPreempt(dispatcher,ti);
+ try {
+ Thread.sleep(20);
+ }
+ catch(Exception e) {
+ }
+ dispatcher.handleGetOperatingInfo();
transEnd(dispatcher,ti.getNode(),ti.getPid(),ti.getTid(),casNo);
randomPreempt(dispatcher,ti);
casNo--;
@@ -279,6 +285,12 @@ public class TestDispatcher {
asExpected("CASes fetched count == 100");
assertTrue(oi.getWorkItemPreemptions() == expectedPremptionsTest03);
asExpected("CASes preempted count == "+expectedPremptionsTest03);
+ try {
+ Thread.sleep(50);
+ }
+ catch(Exception e) {
+ }
+ dispatcher.handleGetOperatingInfo();
}
catch(Exception e) {
e.printStackTrace();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java?rev=1636674&r1=1636673&r2=1636674&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java Tue Nov 4 18:18:38 2014
@@ -462,6 +462,16 @@ public class TestSuite {
assertTrue(oi.getWorkItemUserProcessingErrorRetries() == 75);
oi.setWorkItemUserProcessingTimeouts(80);
assertTrue(oi.getWorkItemUserProcessingTimeouts() == 80);
+ oi.setWorkItemFinishedMillisMin(1000);
+ assertTrue(oi.getWorkItemFinishedMillisMin() == 1000);
+ oi.setWorkItemFinishedMillisMax(2000);
+ assertTrue(oi.getWorkItemFinishedMillisMax() == 2000);
+ oi.setWorkItemFinishedMillisAvg(1500);
+ assertTrue(oi.getWorkItemFinishedMillisAvg() == 1500);
+ oi.setWorkItemRunningMillisMin(1001);
+ assertTrue(oi.getWorkItemRunningMillisMin() == 1001);
+ oi.setWorkItemRunningMillisMax(2001);
+ assertTrue(oi.getWorkItemRunningMillisMax() == 2001);
}
}