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/26 14:56:39 UTC

svn commit: r1496911 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event: common/DuccProcessWorkItems.java common/IDuccProcessWorkItems.java jd/DriverStatusReport.java jd/DuccProcessWorkItemsMap.java

Author: degenaro
Date: Wed Jun 26 12:56:39 2013
New Revision: 1496911

URL: http://svn.apache.org/r1496911
Log:
UIMA-2987 DUCC job driver (JD) should reap unprocessed work items

Modified:
    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/DriverStatusReport.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsMap.java

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=1496911&r1=1496910&r2=1496911&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 Wed Jun 26 12:56:39 2013
@@ -28,6 +28,7 @@ public class DuccProcessWorkItems implem
 	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 completedMillisMax = new AtomicLong(0);
@@ -77,6 +78,11 @@ public class DuccProcessWorkItems implem
 		undispatch();
 	}
 	
+	public void lost() {
+		lost.incrementAndGet();
+		undispatch();
+	}
+	
 	public void preempt() {
 		preempt.incrementAndGet();
 		undispatch();
@@ -133,6 +139,17 @@ public class DuccProcessWorkItems implem
 		}
 		return retVal;
 	}
+	
+	
+	public long getCountLost() {
+		long retVal = 0;
+		try {
+			retVal = lost.get();
+		}
+		catch(Throwable t) {
+		}
+		return retVal;
+	}
 
 	
 	public long getCountPreempt() {

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=1496911&r1=1496910&r2=1496911&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 Wed Jun 26 12:56:39 2013
@@ -26,6 +26,7 @@ public interface IDuccProcessWorkItems e
 	public long getCountDone();
 	public long getCountError();
 	public long getCountRetry();
+	public long getCountLost();
 	public long getCountPreempt();
 	
 	public long getSecsAvg();
@@ -36,5 +37,6 @@ public interface IDuccProcessWorkItems e
 	public void done(long millis);
 	public void error();
 	public void retry();
+	public void lost();
 	public void preempt();
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DriverStatusReport.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/DriverStatusReport.java?rev=1496911&r1=1496910&r2=1496911&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DriverStatusReport.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DriverStatusReport.java Wed Jun 26 12:56:39 2013
@@ -401,7 +401,8 @@ public class DriverStatusReport implemen
 		long total = getWorkItemsTotal();
 		long done = getWorkItemsProcessingCompleted();
 		long error = getWorkItemsProcessingError();
-		long todo = total - (done + error);
+		long lost = getWorkItemsLost();
+		long todo = total - (done + error + lost);
 		return todo;
 	}
 	
@@ -539,8 +540,9 @@ public class DriverStatusReport implemen
 			int fetched = getWorkItemsFetched();
 			int completed = getWorkItemsProcessingCompleted();
 			int error = getWorkItemsProcessingError();
-			boolean retVal = fetched != (completed + error);
-			duccOut.debug(methodName, jobid, "fetched:"+fetched+" "+"completed:"+completed+" "+"error:"+error);
+			int lost = getWorkItemsLost();
+			boolean retVal = fetched != (completed + error + lost);
+			duccOut.debug(methodName, jobid, "fetched:"+fetched+" "+"completed:"+completed+" "+"error:"+error+" "+"lost:"+lost);
 			return retVal;
 		}
 	}
@@ -589,7 +591,9 @@ public class DriverStatusReport implemen
 			if(isTerminateDriver()) {
 				setDriverState(DriverState.Completed);
 				if(getWorkItemsProcessingError() == 0) {
-					setJobCompletion(JobCompletionType.EndOfJob, new Rationale("job driver status reported as normal completion"));
+					if(getWorkItemsLost() == 0) {
+						setJobCompletion(JobCompletionType.EndOfJob, new Rationale("job driver status reported as normal completion"));
+					}
 				}
 			}
 			break;
@@ -606,6 +610,7 @@ public class DriverStatusReport implemen
 									   +"started:"+getWorkItemsProcessingStarted()+" "
 									   +"completed:"+getWorkItemsProcessingCompleted()+" "
 									   +"error:"+getWorkItemsProcessingError()+" "
+									   +"lost:"+getWorkItemsLost()+" "
 									   +"queued:"+getWorkItemsQueued()+" "
 									   +"in-progress:"+casOperatingMap.size()+" "
 									   +"pending:"+isPending()+" "

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsMap.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/DuccProcessWorkItemsMap.java?rev=1496911&r1=1496910&r2=1496911&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsMap.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsMap.java Wed Jun 26 12:56:39 2013
@@ -72,6 +72,13 @@ public class DuccProcessWorkItemsMap ext
 		}
 	}
 	
+	public void lost(DuccId processId) {
+		getTotals().lost();
+		if(processId != null) {
+			get(processId).lost();
+		}
+	}
+	
 	public void preempt(DuccId processId) {
 		getTotals().preempt();
 		if(processId != null) {