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 2013/06/27 16:13:57 UTC
svn commit: r1497364 -
/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java
Author: degenaro
Date: Thu Jun 27 14:13:56 2013
New Revision: 1497364
URL: http://svn.apache.org/r1497364
Log:
UIMA-2984 DUCC webserver (WS) Time GC is reported as zero for some JPs?
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java?rev=1497364&r1=1497363&r2=1497364&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java Thu Jun 27 14:13:56 2013
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.uima.ducc.common.internationalization.Messages;
+import org.apache.uima.ducc.common.node.metrics.ProcessGarbageCollectionStats;
import org.apache.uima.ducc.common.utils.DuccLogger;
import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
import org.apache.uima.ducc.common.utils.TimeStamp;
@@ -33,15 +34,15 @@ import org.apache.uima.ducc.transport.ev
import org.apache.uima.ducc.transport.event.common.DuccWorkMap;
import org.apache.uima.ducc.transport.event.common.IDuccProcess;
import org.apache.uima.ducc.transport.event.common.IDuccProcessMap;
+import org.apache.uima.ducc.transport.event.common.IDuccState.JobState;
import org.apache.uima.ducc.transport.event.common.IDuccWork;
import org.apache.uima.ducc.transport.event.common.IDuccWorkExecutable;
import org.apache.uima.ducc.transport.event.common.IDuccWorkJob;
-import org.apache.uima.ducc.transport.event.common.ITimeWindow;
-import org.apache.uima.ducc.transport.event.common.TimeWindow;
-import org.apache.uima.ducc.transport.event.common.IDuccState.JobState;
import org.apache.uima.ducc.transport.event.common.IProcessState.ProcessState;
import org.apache.uima.ducc.transport.event.common.IResourceState.ProcessDeallocationType;
import org.apache.uima.ducc.transport.event.common.IResourceState.ResourceState;
+import org.apache.uima.ducc.transport.event.common.ITimeWindow;
+import org.apache.uima.ducc.transport.event.common.TimeWindow;
import org.apache.uima.ducc.transport.event.jd.DriverStatusReport;
@@ -231,12 +232,62 @@ public class ProcessAccounting {
return;
}
+ /*
+ private void injectError(DuccId jobid, DuccId processId, ProcessGarbageCollectionStats newGCS, ProcessGarbageCollectionStats oldGCS) {
+ String location = "injectError";
+ Random random = new Random();
+ if(random.nextBoolean()) {
+ long falseCount = oldGCS.getCollectionCount()+newGCS.getCollectionCount()+1;
+ logger.warn(location, jobid, processId, "falseCount: "+falseCount);
+ oldGCS.setCollectionCount(falseCount);
+ long falseTime = oldGCS.getCollectionTime()+newGCS.getCollectionTime()+10*1000;
+ logger.warn(location, jobid, processId, "falseTime: "+falseTime);
+ oldGCS.setCollectionTime(falseTime);
+ }
+ }
+ */
+
+ private boolean validateGCStats(DuccId jobid, DuccId processId, ProcessGarbageCollectionStats newGCS, ProcessGarbageCollectionStats oldGCS) {
+ String location = "validateGCStats";
+ boolean retVal = true;
+ if(oldGCS == null) {
+ //retVal = true;
+ }
+ else if(newGCS == null) {
+ logger.warn(location, jobid, processId, "ProcessGarbageCollectionStats missing?");
+ retVal = false;
+ }
+ else {
+ long newCC = newGCS.getCollectionCount();
+ long oldCC = oldGCS.getCollectionCount();
+ if(newCC < oldCC) {
+ logger.warn(location, jobid, processId, "CollectionCount "+newCC+" < "+oldCC);
+ retVal = false;
+ }
+ long newCT = newGCS.getCollectionTime();
+ long oldCT = oldGCS.getCollectionTime();
+ if(newCT < oldCT) {
+ logger.warn(location, jobid, processId, "CollectionTime "+newCT+" < "+oldCT);
+ retVal = false;
+ }
+ }
+ return retVal;
+ }
+
public void copyInventoryGCStats(IDuccWork dw, IDuccProcess inventoryProcess, IDuccProcess process) {
String methodName = "copyInventoryGCStats";
logger.trace(methodName, null, messages.fetch("enter"));
- if ( inventoryProcess.getGarbageCollectionStats() != null ) {
- process.setGarbageCollectionStats(inventoryProcess.getGarbageCollectionStats());
- logger.trace(methodName, dw.getDuccId(), process.getDuccId(), "GC Stats Count:"+process.getGarbageCollectionStats().getCollectionCount());
+ DuccId jobId = dw.getDuccId();
+ DuccId processId = process.getDuccId();
+ ProcessGarbageCollectionStats newGCS = inventoryProcess.getGarbageCollectionStats();
+ ProcessGarbageCollectionStats oldGCS = process.getGarbageCollectionStats();
+ if(validateGCStats(jobId,processId,newGCS,oldGCS)) {
+ process.setGarbageCollectionStats(newGCS);
+ ProcessGarbageCollectionStats gcs = process.getGarbageCollectionStats();
+ if(gcs != null) {
+ logger.trace(methodName, jobId, processId, "GC Stats Count:"+gcs.getCollectionCount());
+ logger.trace(methodName, jobId, processId, "GC Stats Time:"+gcs.getCollectionTime());
+ }
}
logger.trace(methodName, null, messages.fetch("exit"));
return;