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/21 17:27:06 UTC
svn commit: r1640953 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd:
./ cas/ fsm/wi/ mh/ mh/iface/ mh/impl/
Author: degenaro
Date: Fri Nov 21 16:27:05 2014
New Revision: 1640953
URL: http://svn.apache.org/r1640953
Log:
UIMA-4069 Redesign of JD toward the main goal of classpath separation for container (system) code.
DriverState: Initializing, Active, Ended.
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.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/mh/MessageHandler.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
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java?rev=1640953&r1=1640952&r2=1640953&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java Fri Nov 21 16:27:05 2014
@@ -32,6 +32,7 @@ import org.apache.uima.ducc.container.jd
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.WorkItemStatistics;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.DriverState;
public class JobDriver {
@@ -63,6 +64,8 @@ public class JobDriver {
private ProxyJobDriverErrorHandler pjdeh = null;
private IMessageHandler mh = new MessageHandler();
+ private DriverState driverState = null;
+
private JobDriver() throws JobDriverException {
initialize();
}
@@ -77,6 +80,7 @@ public class JobDriver {
cm = new CasManager();
pjdeh = new ProxyJobDriverErrorHandler();
mh = new MessageHandler();
+ driverState = DriverState.Initializing;
}
catch(Exception e) {
logger.error(location, ILogger.null_id, e);
@@ -107,4 +111,34 @@ public class JobDriver {
public IMessageHandler getMessageHandler() {
return mh;
}
+
+ public DriverState getDriverState() {
+ synchronized(driverState) {
+ return driverState;
+ }
+ }
+
+ public void advanceDriverState(DriverState value) {
+ synchronized(driverState) {
+ switch(driverState) {
+ case Ended:
+ break;
+ case Active:
+ switch(value) {
+ case Ended:
+ driverState = value;
+ break;
+ }
+ break;
+ case Initializing:
+ switch(value) {
+ case Ended:
+ case Active:
+ driverState = value;
+ }
+ break;
+ }
+ driverState = value;
+ }
+ }
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java?rev=1640953&r1=1640952&r2=1640953&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java Fri Nov 21 16:27:05 2014
@@ -23,10 +23,12 @@ import java.util.concurrent.LinkedBlocki
import org.apache.uima.ducc.container.common.logger.IComponent;
import org.apache.uima.ducc.container.common.logger.ILogger;
import org.apache.uima.ducc.container.common.logger.Logger;
+import org.apache.uima.ducc.container.jd.JobDriver;
import org.apache.uima.ducc.container.jd.JobDriverException;
import org.apache.uima.ducc.container.jd.cas.CasManagerStats.RetryReason;
import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverCollectionReader;
import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.DriverState;
public class CasManager {
@@ -47,6 +49,7 @@ public class CasManager {
try {
pjdcr = new ProxyJobDriverCollectionReader();
casManagerStats.setCrTotal(pjdcr.getTotal());
+ JobDriver.getInstance().advanceDriverState(DriverState.Active);
}
catch(JobDriverException e) {
logger.error(location, ILogger.null_id, e);
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java?rev=1640953&r1=1640952&r2=1640953&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java Fri Nov 21 16:27:05 2014
@@ -40,6 +40,10 @@ public class CasManagerStats {
private ConcurrentHashMap<String,AtomicInteger> retryReasonsMap = new ConcurrentHashMap<String,AtomicInteger>();
+ public int getUnfinishedWorkCount() {
+ return crTotal.get() - (endSuccess.get() + endFailure.get());
+ }
+
public void setCrTotal(int value) {
crTotal.set(value);
}
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=1640953&r1=1640952&r2=1640953&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 Fri Nov 21 16:27:05 2014
@@ -35,6 +35,7 @@ import org.apache.uima.ducc.container.jd
import org.apache.uima.ducc.container.jd.wi.IWorkItemStatistics;
import org.apache.uima.ducc.container.net.iface.IMetaCas;
import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.DriverState;
public class ActionEnd implements IAction {
@@ -74,6 +75,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, ILogger.null_id, mb.toString());
+ checkEnded(cm);
}
private void successWorkItem(CasManager cm, IWorkItem wi, IMetaCasTransaction trans, IMetaCas metaCas, IRemoteWorkerIdentity rwi) {
@@ -86,6 +88,17 @@ public class ActionEnd implements IActio
mb.append(Standardize.Label.seqNo.get()+metaCas.getSystemKey());
mb.append(Standardize.Label.remote.get()+rwi.toString());
logger.info(location, ILogger.null_id, mb.toString());
+ checkEnded(cm);
+ }
+
+ private void checkEnded(CasManager cm) {
+ String location = "checkEnded";
+ if(cm.getCasManagerStats().getUnfinishedWorkCount() <= 0) {
+ JobDriver.getInstance().advanceDriverState(DriverState.Ended);
+ MessageBuffer mb = new MessageBuffer();
+ mb.append(Standardize.Label.driverState.get()+JobDriver.getInstance().getDriverState());
+ logger.info(location, ILogger.null_id, mb.toString());
+ }
}
@Override
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.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/MessageHandler.java?rev=1640953&r1=1640952&r2=1640953&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java Fri Nov 21 16:27:05 2014
@@ -49,6 +49,7 @@ import org.apache.uima.ducc.container.jd
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;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.DriverState;
import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.Type;
public class MessageHandler implements IMessageHandler {
@@ -101,7 +102,9 @@ public class MessageHandler implements I
oi.setWorkItemRunningMillisMax(rwis.getMillisMax());
oi.setWorkItemTodMostRecentStart(rwis.getTodMostRecentStart());
oi.setActiveWorkItemInfo(jdh.getActiveWotrkItemInfo());
+ oi.setDriverState(jd.getDriverState().name());
MessageBuffer mb = new MessageBuffer();
+ mb.append(Standardize.Label.driverState.get()+oi.getWorkItemCrTotal());
mb.append(Standardize.Label.crTotal.get()+oi.getWorkItemCrTotal());
mb.append(Standardize.Label.crFetches.get()+oi.getWorkItemCrFetches());
mb.append(Standardize.Label.endSuccess.get()+oi.getWorkItemEndSuccesses());
@@ -201,6 +204,8 @@ public class MessageHandler implements I
default:
break;
}
+ DriverState driverState = JobDriver.getInstance().getDriverState();
+ trans.setDriverState(driverState);
}
catch(Exception e) {
logger.error(location, ILogger.null_id, e);
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=1640953&r1=1640952&r2=1640953&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 Fri Nov 21 16:27:05 2014
@@ -84,6 +84,9 @@ public interface IOperatingInfo extends
//
+ public void setDriverState(String value);
+ public String getDriverState();
+
public void setKillJob();
public boolean isKillJob();
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=1640953&r1=1640952&r2=1640953&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 Fri Nov 21 16:27:05 2014
@@ -49,6 +49,7 @@ public class OperatingInfo implements IO
private long todMostRecentStart = 0;
+ private String driverState = null;
private boolean killJob = false;
private ArrayList<IWorkItemInfo> activeWorkItemInfo = null;
@@ -240,6 +241,16 @@ public class OperatingInfo implements IO
public boolean isKillJob() {
return killJob;
}
+
+ @Override
+ public void setDriverState(String value) {
+ driverState = value;
+ }
+
+ @Override
+ public String getDriverState() {
+ return driverState;
+ }
@Override
public void setActiveWorkItemInfo(ArrayList<IWorkItemInfo> value) {