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) {