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/12/22 21:45:32 UTC
svn commit: r1647395 - in /uima/sandbox/uima-ducc/trunk:
uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/
uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/
uima-ducc-transport/src/main/java/org/apache...
Author: degenaro
Date: Mon Dec 22 20:45:32 2014
New Revision: 1647395
URL: http://svn.apache.org/r1647395
Log:
UIMA-4069 DUCC Job Driver (JD) system classpath
Driver Status Report summary for JD Time(Avg,Max,Min), Done, Error, Dispatch, Retry, Preempt
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItemsV1.java (with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItemsV1.java (with props)
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItems.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItems.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/v1/DuccProcessWorkItemsReportV1.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/test/java/org/apache/uima/ducc/transport/test/DuccProcessWorkItemsTest.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java?rev=1647395&r1=1647394&r2=1647395&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java Mon Dec 22 20:45:32 2014
@@ -57,6 +57,7 @@ import org.apache.uima.ducc.transport.ev
import org.apache.uima.ducc.transport.event.common.IDuccProcessMap;
import org.apache.uima.ducc.transport.event.common.IDuccProcessType.ProcessType;
import org.apache.uima.ducc.transport.event.common.IDuccProcessWorkItems;
+import org.apache.uima.ducc.transport.event.common.IDuccProcessWorkItemsV1;
import org.apache.uima.ducc.transport.event.common.IDuccReservationMap;
import org.apache.uima.ducc.transport.event.common.IDuccState.JobState;
import org.apache.uima.ducc.transport.event.common.IDuccState.ReservationState;
@@ -370,7 +371,7 @@ public class StateManager {
IDuccProcess process = processMap.get(processId);
IDuccProcessWorkItems pwi = pwiMap.get(processId);
process.setProcessWorkItems(pwi);
- logger.trace(methodName, job.getDuccId(), "done:"+pwi.getCountDone()+" "+"error:"+pwi.getCountError()+" "+"dispatch:"+pwi.getCountDispatch()+" "+"unassigned:"+pwi.getCountUnassigned()+" "+"lost:"+pwi.getCountLost());
+ logger.trace(methodName, job.getDuccId(), "done:"+pwi.getCountDone()+" "+"error:"+pwi.getCountError()+" "+"dispatch:"+pwi.getCountDispatch());
}
}
}
@@ -385,13 +386,13 @@ public class StateManager {
try {
IDuccProcessMap processMap = job.getProcessMap();
DuccProcessWorkItemsReportV1 pwiReport = (DuccProcessWorkItemsReportV1)jdStatusReport.getDuccProcessWorkItemsMap();
- ConcurrentHashMap<DuccId, IDuccProcessWorkItems> pwiMap = pwiReport;
+ ConcurrentHashMap<DuccId, IDuccProcessWorkItemsV1> pwiMap = pwiReport;
if(pwiMap != null) {
Iterator<DuccId> iterator = pwiMap.keySet().iterator();
while(iterator.hasNext()) {
DuccId processId = iterator.next();
IDuccProcess process = processMap.get(processId);
- IDuccProcessWorkItems pwi = pwiMap.get(processId);
+ IDuccProcessWorkItemsV1 pwi = pwiMap.get(processId);
process.setProcessWorkItems(pwi);
logger.trace(methodName, job.getDuccId(), "done:"+pwi.getCountDone()+" "+"error:"+pwi.getCountError()+" "+"dispatch:"+pwi.getCountDispatch()+" "+"unassigned:"+pwi.getCountUnassigned()+" "+"lost:"+pwi.getCountLost());
}
@@ -412,7 +413,6 @@ public class StateManager {
IDuccProcessWorkItemsReport pwiReport = jdStatusReport.getDuccProcessWorkItemsMap();
if(pwiReport != null) {
IDuccProcessWorkItems pwi = pwiReport.getTotals();
-
DuccWorkPopDriver driver = job.getDriver();
IDuccProcessMap processMap = driver.getProcessMap();
if(processMap != null) {
@@ -421,7 +421,7 @@ public class StateManager {
DuccId processId = iterator.next();
IDuccProcess process = processMap.get(processId);
process.setProcessWorkItems(pwi);
- logger.debug(methodName, job.getDuccId(), "done:"+pwi.getCountDone()+" "+"error:"+pwi.getCountError()+" "+"dispatch:"+pwi.getCountDispatch()+" "+"unassigned:"+pwi.getCountUnassigned()+" "+"lost:"+pwi.getCountLost());
+ logger.debug(methodName, job.getDuccId(), "done:"+pwi.getCountDone()+" "+"error:"+pwi.getCountError()+" "+"dispatch:"+pwi.getCountDispatch());
}
}
@@ -443,8 +443,7 @@ public class StateManager {
try {
DuccProcessWorkItemsReportV1 pwiMap = (DuccProcessWorkItemsReportV1) jdStatusReport.getDuccProcessWorkItemsMap();
if(pwiMap != null) {
- IDuccProcessWorkItems pwi = pwiMap.getTotals();
-
+ IDuccProcessWorkItemsV1 pwi = pwiMap.getTotals();
DuccWorkPopDriver driver = job.getDriver();
IDuccProcessMap processMap = driver.getProcessMap();
if(processMap != null) {
@@ -456,10 +455,8 @@ public class StateManager {
logger.debug(methodName, job.getDuccId(), "done:"+pwi.getCountDone()+" "+"error:"+pwi.getCountError()+" "+"dispatch:"+pwi.getCountDispatch()+" "+"unassigned:"+pwi.getCountUnassigned()+" "+"lost:"+pwi.getCountLost());
}
}
- if(jdStatusReport instanceof IDriverStatusReportV1) {
- IDriverStatusReportV1 jdStatusReportV1 = (IDriverStatusReportV1) jdStatusReport;
- pwi.setCountUnassigned(jdStatusReportV1.getWorkItemPendingProcessAssignmentCount());
- }
+ IDriverStatusReportV1 jdStatusReportV1 = (IDriverStatusReportV1) jdStatusReport;
+ pwi.setCountUnassigned(jdStatusReportV1.getWorkItemPendingProcessAssignmentCount());
}
job.setWiMillisMin(jdStatusReport.getWiMillisMin());
job.setWiMillisMax(jdStatusReport.getWiMillisMax());
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java?rev=1647395&r1=1647394&r2=1647395&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java Mon Dec 22 20:45:32 2014
@@ -274,15 +274,7 @@ public class DuccProcess implements IDuc
retVal = false;
}
else {
- if((pwi.getCountDispatch() == 0)
- && (pwi.getCountDone() == 0 )
- && (pwi.getCountError() == 0)
- && (pwi.getCountLost() == 0)
- && (pwi.getCountPreempt() == 0)
- && (pwi.getCountRetry() == 0)
- ) {
- retVal = false;
- }
+ retVal = pwi.isAssignedWork();
}
return retVal;
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItems.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItems.java?rev=1647395&r1=1647394&r2=1647395&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItems.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItems.java Mon Dec 22 20:45:32 2014
@@ -25,19 +25,16 @@ import org.apache.uima.ducc.container.jd
public class DuccProcessWorkItems implements IDuccProcessWorkItems {
private static final long serialVersionUID = 1L;
-
- private long unassigned = 0;
private AtomicLong dispatch = new AtomicLong(0);
private AtomicLong done = new AtomicLong(0);
private AtomicLong error = new AtomicLong(0);
private AtomicLong retry = new AtomicLong(0);
- private AtomicLong lost = new AtomicLong(0);
private AtomicLong preempt = new AtomicLong(0);
- private AtomicLong completedMillisTotal = new AtomicLong(0);
- private AtomicLong completedMillisAvg = new AtomicLong(0);
- private AtomicLong completedMillisMax = new AtomicLong(0);
- private AtomicLong completedMillisMin = new AtomicLong(0);
+
+ private AtomicLong doneMillisAvg = new AtomicLong(0);
+ private AtomicLong doneMillisMax = new AtomicLong(0);
+ private AtomicLong doneMillisMin = new AtomicLong(0);
public DuccProcessWorkItems() {
}
@@ -47,198 +44,120 @@ public class DuccProcessWorkItems implem
done.set(pi.getDone());
error.set(pi.getError());
retry.set(pi.getRetry());
- lost.set(0);
preempt.set(pi.getPreempt());
- completedMillisAvg.set(pi.getAvg());
- completedMillisMax.set(pi.getMax());
- completedMillisMin.set(pi.getMin());
- }
-
- public long getCountUnassigned() {
- return unassigned;
- }
-
- public void setCountUnassigned(long count) {
- unassigned = count;
+ doneMillisAvg.set(pi.getAvg());
+ doneMillisMax.set(pi.getMax());
+ doneMillisMin.set(pi.getMin());
}
- private void setMin(long update) {
- completedMillisMin.compareAndSet(0, update);
- while(true) {
- long min = completedMillisMin.get();
- if(update < min) {
- completedMillisMin.compareAndSet(min, update);
- }
- else {
- break;
- }
+ public boolean isAssignedWork() {
+ boolean retVal = true;
+ if((getCountDispatch() == 0)
+ && (getCountDone() == 0 )
+ && (getCountError() == 0)
+ && (getCountPreempt() == 0)
+ && (getCountRetry() == 0)
+ ) {
+ retVal = false;
}
+ return retVal;
}
-
- private void setMax(long update) {
- completedMillisMax.compareAndSet(0, update);
- while(true) {
- long max = completedMillisMax.get();
- if(update > max) {
- completedMillisMax.compareAndSet(max, update);
- }
- else {
- break;
- }
- }
- }
-
- public void done(long delta) {
- done.incrementAndGet();
- completedMillisTotal.addAndGet(delta);
- setMin(delta);
- setMax(delta);
- undispatch();
- }
-
- public void error() {
- error.incrementAndGet();
- undispatch();
- }
-
- public void retry() {
- retry.incrementAndGet();
- undispatch();
+
+ @Override
+ public void setCountDispatch(long value) {
+ dispatch.set(value);
}
-
- public void lost() {
- lost.incrementAndGet();
+
+ @Override
+ public void setCountDone(long value) {
+ done.set(value);
}
-
- public void preempt() {
- preempt.incrementAndGet();
- undispatch();
+
+ @Override
+ public void setCountError(long value) {
+ error.set(value);
}
-
- public void dispatch() {
- dispatch.incrementAndGet();
+
+ @Override
+ public void setCountRetry(long value) {
+ retry.set(value);
}
-
- private void undispatch() {
- dispatch.decrementAndGet();
+
+ @Override
+ public void setCountPreempt(long value) {
+ preempt.set(value);
}
-
+ @Override
public long getCountDispatch() {
- long retVal = 0;
- try {
- retVal = dispatch.get();
- }
- catch(Throwable t) {
- }
- return retVal;
+ return dispatch.get();
}
-
+ @Override
public long getCountDone() {
- long retVal = 0;
- try {
- retVal = done.get();
- }
- catch(Throwable t) {
- }
- return retVal;
+ return done.get();
}
-
+ @Override
public long getCountError() {
- long retVal = 0;
- try {
- retVal = error.get();
- }
- catch(Throwable t) {
- }
- return retVal;
+ return error.get();
}
-
+ @Override
public long getCountRetry() {
- long retVal = 0;
- try {
- retVal = retry.get();
- }
- catch(Throwable t) {
- }
- return retVal;
- }
-
-
- public long getCountLost() {
- long retVal = 0;
- try {
- retVal = lost.get();
- }
- catch(Throwable t) {
- }
- return retVal;
+ return retry.get();
}
-
+ @Override
public long getCountPreempt() {
- long retVal = 0;
- try {
- retVal = preempt.get();
- }
- catch(Throwable t) {
- }
- return retVal;
+ return preempt.get();
}
-
-
- public long getSecsAvgV1() {
- long retVal = 0;
- try {
- long count = done.get();
- if(count > 0) {
- double msecs = (double)completedMillisTotal.get() / (double)count;
- retVal = (long)(msecs/1000);
- }
- }
- catch(Throwable t) {
- }
- return retVal;
+
+ @Override
+ public void setMillisAvg(long value) {
+ doneMillisAvg.set(value);
}
-
+
+ @Override
+ public void setMillisMax(long value) {
+ doneMillisMax.set(value);
+ }
+
+ @Override
+ public void setMillisMin(long value) {
+ doneMillisMin.set(value);
+ }
+ @Override
+ public long getMillisAvg() {
+ return doneMillisAvg.get();
+ }
+
+ @Override
+ public long getMillisMax() {
+ return doneMillisMax.get();
+ }
+
+ @Override
+ public long getMillisMin() {
+ return doneMillisMin.get();
+ }
+
+ @Override
public long getSecsAvg() {
- long retVal = 0;
- try {
- double msecs = (double)completedMillisAvg.get();
- retVal = (long)(msecs/1000);
- }
- catch(Throwable t) {
- }
- if(retVal == 0) {
- retVal = getSecsAvgV1();
- }
- return retVal;
+ double value = doneMillisAvg.get()/1000.0;
+ return (long) value;
}
-
+
+ @Override
public long getSecsMax() {
- long retVal = 0;
- try {
- double msecs = (double)completedMillisMax.get();
- retVal = (long)(msecs/1000);
- }
- catch(Throwable t) {
- }
- return retVal;
+ double value = doneMillisMax.get()/1000.0;
+ return (long) value;
}
-
+ @Override
public long getSecsMin() {
- long retVal = 0;
- try {
- double msecs = (double)completedMillisMin.get();
- retVal = (long)(msecs/1000);
- }
- catch(Throwable t) {
- }
- return retVal;
+ double value = doneMillisMin.get()/1000.0;
+ return (long) value;
}
-
+
}
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItemsV1.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItemsV1.java?rev=1647395&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItemsV1.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItemsV1.java Mon Dec 22 20:45:32 2014
@@ -0,0 +1,316 @@
+/*
+ * 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.transport.event.common;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.apache.uima.ducc.container.jd.mh.iface.IProcessInfo;
+
+public class DuccProcessWorkItemsV1 implements IDuccProcessWorkItemsV1 {
+
+ private static final long serialVersionUID = 1L;
+
+ private long unassigned = 0;
+
+ private AtomicLong dispatch = new AtomicLong(0);
+ private AtomicLong done = new AtomicLong(0);
+ private AtomicLong error = new AtomicLong(0);
+ private AtomicLong retry = new AtomicLong(0);
+ private AtomicLong lost = new AtomicLong(0);
+ private AtomicLong preempt = new AtomicLong(0);
+ private AtomicLong completedMillisTotal = new AtomicLong(0);
+ private AtomicLong completedMillisAvg = new AtomicLong(0);
+ private AtomicLong completedMillisMax = new AtomicLong(0);
+ private AtomicLong completedMillisMin = new AtomicLong(0);
+
+ public DuccProcessWorkItemsV1() {
+ }
+
+ public DuccProcessWorkItemsV1(IProcessInfo pi) {
+ dispatch.set(pi.getDispatch());
+ done.set(pi.getDone());
+ error.set(pi.getError());
+ retry.set(pi.getRetry());
+ lost.set(0);
+ preempt.set(pi.getPreempt());
+ completedMillisAvg.set(pi.getAvg());
+ completedMillisMax.set(pi.getMax());
+ completedMillisMin.set(pi.getMin());
+ }
+
+ public boolean isAssignedWork() {
+ boolean retVal = true;
+ if((getCountDispatch() == 0)
+ && (getCountDone() == 0 )
+ && (getCountError() == 0)
+ && (getCountPreempt() == 0)
+ && (getCountRetry() == 0)
+ && (getCountLost() == 0)
+ ) {
+ retVal = false;
+ }
+ return retVal;
+ }
+
+ public long getCountUnassigned() {
+ return unassigned;
+ }
+
+ public void setCountUnassigned(long count) {
+ unassigned = count;
+ }
+
+ private void setMin(long update) {
+ completedMillisMin.compareAndSet(0, update);
+ while(true) {
+ long min = completedMillisMin.get();
+ if(update < min) {
+ completedMillisMin.compareAndSet(min, update);
+ }
+ else {
+ break;
+ }
+ }
+ }
+
+ private void setMax(long update) {
+ completedMillisMax.compareAndSet(0, update);
+ while(true) {
+ long max = completedMillisMax.get();
+ if(update > max) {
+ completedMillisMax.compareAndSet(max, update);
+ }
+ else {
+ break;
+ }
+ }
+ }
+
+ public void done(long delta) {
+ done.incrementAndGet();
+ completedMillisTotal.addAndGet(delta);
+ setMin(delta);
+ setMax(delta);
+ undispatch();
+ }
+
+ public void error() {
+ error.incrementAndGet();
+ undispatch();
+ }
+
+ public void retry() {
+ retry.incrementAndGet();
+ undispatch();
+ }
+
+ public void lost() {
+ lost.incrementAndGet();
+ }
+
+ public void preempt() {
+ preempt.incrementAndGet();
+ undispatch();
+ }
+
+ public void dispatch() {
+ dispatch.incrementAndGet();
+ }
+
+ private void undispatch() {
+ dispatch.decrementAndGet();
+ }
+
+
+ public long getCountDispatch() {
+ long retVal = 0;
+ try {
+ retVal = dispatch.get();
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+
+ public long getCountDone() {
+ long retVal = 0;
+ try {
+ retVal = done.get();
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+
+ public long getCountError() {
+ long retVal = 0;
+ try {
+ retVal = error.get();
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+
+ public long getCountRetry() {
+ long retVal = 0;
+ try {
+ retVal = retry.get();
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+
+ public long getCountLost() {
+ long retVal = 0;
+ try {
+ retVal = lost.get();
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+
+ public long getCountPreempt() {
+ long retVal = 0;
+ try {
+ retVal = preempt.get();
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+
+ public long getSecsAvgV1() {
+ long retVal = 0;
+ try {
+ long count = done.get();
+ if(count > 0) {
+ double msecs = (double)completedMillisTotal.get() / (double)count;
+ retVal = (long)(msecs/1000);
+ }
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+ public long getSecsAvg() {
+ long retVal = 0;
+ try {
+ double msecs = (double)completedMillisAvg.get();
+ retVal = (long)(msecs/1000);
+ }
+ catch(Throwable t) {
+ }
+ if(retVal == 0) {
+ retVal = getSecsAvgV1();
+ }
+ return retVal;
+ }
+
+ public long getSecsMax() {
+ long retVal = 0;
+ try {
+ double msecs = (double)completedMillisMax.get();
+ retVal = (long)(msecs/1000);
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+
+ public long getSecsMin() {
+ long retVal = 0;
+ try {
+ double msecs = (double)completedMillisMin.get();
+ retVal = (long)(msecs/1000);
+ }
+ catch(Throwable t) {
+ }
+ return retVal;
+ }
+
+ @Override
+ public void setCountDispatch(long value) {
+ //V2
+ }
+
+ @Override
+ public void setCountDone(long value) {
+ // V2
+ }
+
+ @Override
+ public void setCountError(long value) {
+ //V2
+ }
+
+ @Override
+ public void setCountRetry(long value) {
+ //V2
+ }
+
+ @Override
+ public void setCountPreempt(long value) {
+ //V2
+ }
+
+ @Override
+ public void setMillisAvg(long value) {
+ //V2
+ }
+
+ @Override
+ public void setMillisMax(long value) {
+ //V2
+ }
+
+ @Override
+ public void setMillisMin(long value) {
+ //V2
+ }
+
+ @Override
+ public long getMillisAvg() {
+ //V2
+ return 0;
+ }
+
+ @Override
+ public long getMillisMax() {
+ //V2
+ return 0;
+ }
+
+ @Override
+ public long getMillisMin() {
+ //V2
+ return 0;
+ }
+
+}
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItemsV1.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessWorkItemsV1.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItems.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItems.java?rev=1647395&r1=1647394&r2=1647395&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItems.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItems.java Mon Dec 22 20:45:32 2014
@@ -21,25 +21,31 @@ package org.apache.uima.ducc.transport.e
import java.io.Serializable;
public interface IDuccProcessWorkItems extends Serializable {
+
+ public boolean isAssignedWork();
- public long getCountUnassigned();
- public void setCountUnassigned(long count);
+ public void setCountDispatch(long value);
+ public void setCountDone(long value);
+ public void setCountError(long value);
+ public void setCountRetry(long value);
+ public void setCountPreempt(long value);
public long getCountDispatch();
public long getCountDone();
public long getCountError();
public long getCountRetry();
- public long getCountLost();
public long getCountPreempt();
+ public void setMillisAvg(long value);
+ public void setMillisMax(long value);
+ public void setMillisMin(long value);
+
+ public long getMillisAvg();
+ public long getMillisMax();
+ public long getMillisMin();
+
public long getSecsAvg();
public long getSecsMax();
public long getSecsMin();
- public void dispatch();
- public void done(long millis);
- public void error();
- public void retry();
- public void lost();
- public void preempt();
}
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItemsV1.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItemsV1.java?rev=1647395&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItemsV1.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItemsV1.java Mon Dec 22 20:45:32 2014
@@ -0,0 +1,36 @@
+/*
+ * 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.transport.event.common;
+
+import java.io.Serializable;
+
+public interface IDuccProcessWorkItemsV1 extends IDuccProcessWorkItems, Serializable {
+
+ public long getCountUnassigned();
+ public void setCountUnassigned(long count);
+
+ public long getCountLost();
+
+ public void dispatch();
+ public void done(long millis);
+ public void error();
+ public void retry();
+ public void lost();
+ public void preempt();
+}
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItemsV1.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccProcessWorkItemsV1.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java?rev=1647395&r1=1647394&r2=1647395&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java Mon Dec 22 20:45:32 2014
@@ -21,12 +21,16 @@ package org.apache.uima.ducc.transport.e
import java.util.concurrent.ConcurrentHashMap;
import org.apache.uima.ducc.common.utils.id.DuccId;
+import org.apache.uima.ducc.container.common.logger.IComponent;
+import org.apache.uima.ducc.container.common.logger.Logger;
import org.apache.uima.ducc.transport.event.common.DuccProcessWorkItems;
import org.apache.uima.ducc.transport.event.common.IDuccProcessWorkItems;
public class DuccProcessWorkItemsReport implements IDuccProcessWorkItemsReport {
private static final long serialVersionUID = 1L;
+
+ private static Logger logger = Logger.getLogger(DuccProcessWorkItemsReport.class, IComponent.Id.JD.name());
private ConcurrentHashMap<DuccId, IDuccProcessWorkItems> map = new ConcurrentHashMap<DuccId, IDuccProcessWorkItems>();
private IDuccProcessWorkItems totals = new DuccProcessWorkItems();
@@ -42,7 +46,67 @@ public class DuccProcessWorkItemsReport
@Override
public void accum(DuccId key, IDuccProcessWorkItems value) {
- //TODO
+ String location = "accum";
+ long dispatch = totals.getCountDispatch();
+ long done = totals.getCountDone();
+ long error = totals.getCountError();
+ long preempt = totals.getCountPreempt();
+ long retry = totals.getCountRetry();
+ // dispatch
+ long newDispatch = dispatch+value.getCountDispatch();
+ totals.setCountDispatch(newDispatch);
+ // done
+ long newDone = done+value.getCountDone();
+ totals.setCountDone(newDone);
+ // error
+ long newError = error+value.getCountError();
+ totals.setCountError(newError);
+ // preempt
+ long newPreempt = preempt+value.getCountPreempt();
+ totals.setCountPreempt(newPreempt);
+ // retry
+ long newRetry = retry+value.getCountRetry();
+ totals.setCountRetry(newRetry);
+ // avg
+ long cnt1 = totals.getCountDone();
+ long avg1 = totals.getMillisAvg();
+ long cnt2 = value.getCountDone();
+ long avg2 = value.getMillisAvg();
+ double top = (avg1*cnt1)+(avg2*cnt2);
+ double bot = (cnt1+cnt2);
+ long avg = (long)(top/bot);
+ totals.setMillisAvg(avg);
+ // max
+ long max = totals.getMillisMax();
+ long maxCandidate = value.getMillisMax();
+ logger.trace(location, null, "max="+max+" "+"maxCandidate="+maxCandidate);
+ if(max > 0) {
+ if(maxCandidate > 0) {
+ if(maxCandidate > max) {
+ max = maxCandidate;
+ }
+ }
+ }
+ else {
+ max = maxCandidate;
+ }
+ totals.setMillisMax(max);
+ // min
+ long min = totals.getMillisMin();
+ long minCandidate = value.getMillisMin();
+ logger.trace(location, null, "min="+min+" "+"minCandidate="+minCandidate);
+ if(min > 0) {
+ if(minCandidate > 0) {
+ if(minCandidate < min) {
+ min = minCandidate;
+ }
+ }
+ }
+ else {
+ min = minCandidate;
+ }
+ totals.setMillisMin(min);
+ // process
map.put(key, value);
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/v1/DuccProcessWorkItemsReportV1.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/v1/DuccProcessWorkItemsReportV1.java?rev=1647395&r1=1647394&r2=1647395&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/v1/DuccProcessWorkItemsReportV1.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/v1/DuccProcessWorkItemsReportV1.java Mon Dec 22 20:45:32 2014
@@ -21,23 +21,23 @@ package org.apache.uima.ducc.transport.e
import java.util.concurrent.ConcurrentHashMap;
import org.apache.uima.ducc.common.utils.id.DuccId;
-import org.apache.uima.ducc.transport.event.common.DuccProcessWorkItems;
-import org.apache.uima.ducc.transport.event.common.IDuccProcessWorkItems;
+import org.apache.uima.ducc.transport.event.common.DuccProcessWorkItemsV1;
+import org.apache.uima.ducc.transport.event.common.IDuccProcessWorkItemsV1;
-public class DuccProcessWorkItemsReportV1 extends ConcurrentHashMap<DuccId, IDuccProcessWorkItems> {
+public class DuccProcessWorkItemsReportV1 extends ConcurrentHashMap<DuccId, IDuccProcessWorkItemsV1> {
private static final long serialVersionUID = 1L;
- private IDuccProcessWorkItems totals = new DuccProcessWorkItems();
+ private IDuccProcessWorkItemsV1 totals = new DuccProcessWorkItemsV1();
- public IDuccProcessWorkItems getTotals() {
+ public IDuccProcessWorkItemsV1 getTotals() {
return totals;
}
- private IDuccProcessWorkItems get(DuccId duccId) {
- IDuccProcessWorkItems retVal = super.get(duccId);
+ private IDuccProcessWorkItemsV1 get(DuccId duccId) {
+ IDuccProcessWorkItemsV1 retVal = (IDuccProcessWorkItemsV1) super.get(duccId);
if(retVal == null) {
- retVal = new DuccProcessWorkItems();
+ retVal = new DuccProcessWorkItemsV1();
super.put(duccId, retVal);
}
return retVal;
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/test/java/org/apache/uima/ducc/transport/test/DuccProcessWorkItemsTest.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/test/java/org/apache/uima/ducc/transport/test/DuccProcessWorkItemsTest.java?rev=1647395&r1=1647394&r2=1647395&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/test/java/org/apache/uima/ducc/transport/test/DuccProcessWorkItemsTest.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/test/java/org/apache/uima/ducc/transport/test/DuccProcessWorkItemsTest.java Mon Dec 22 20:45:32 2014
@@ -18,9 +18,9 @@
*/
package org.apache.uima.ducc.transport.test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.fail;
-import org.apache.uima.ducc.transport.event.common.DuccProcessWorkItems;
+import org.apache.uima.ducc.transport.event.common.DuccProcessWorkItemsV1;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -45,7 +45,7 @@ public class DuccProcessWorkItemsTest {
public void tearDown() throws Exception {
}
- private static void stats(DuccProcessWorkItems pwi) {
+ private static void stats(DuccProcessWorkItemsV1 pwi) {
System.out.println(" done: "+pwi.getCountDone());
System.out.println(" error: "+pwi.getCountError());
System.out.println(" retry: "+pwi.getCountRetry());
@@ -55,17 +55,17 @@ public class DuccProcessWorkItemsTest {
System.out.println("max(secs): "+pwi.getSecsMax());
}
- private static void done(DuccProcessWorkItems pwi, int msecs) {
+ private static void done(DuccProcessWorkItemsV1 pwi, int msecs) {
pwi.dispatch();
pwi.done(msecs);
}
- private static void error(DuccProcessWorkItems pwi) {
+ private static void error(DuccProcessWorkItemsV1 pwi) {
pwi.dispatch();
pwi.error();
}
- private static void retry(DuccProcessWorkItems pwi) {
+ private static void retry(DuccProcessWorkItemsV1 pwi) {
pwi.dispatch();
pwi.retry();
}
@@ -73,7 +73,7 @@ public class DuccProcessWorkItemsTest {
@Test
public void test() {
try {
- DuccProcessWorkItems pwi = new DuccProcessWorkItems();
+ DuccProcessWorkItemsV1 pwi = new DuccProcessWorkItemsV1();
pwi.dispatch();
done(pwi,30000);
done(pwi,40000);