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