Author: degenaro
Date: Sun Nov 2 12:40:09 2014
New Revision: 1636127
URL: http://svn.apache.org/r1636127
Log:
UIMA-4069 Redesign of JD toward the main goal of classpath separation for
container (system) code.
Update CAS Manager for preemption events.
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/CasManagerStats.java
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/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/CasManagerStats.java?rev=1636127&r1=1636126&r2=1636127&view=diff
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/CasManagerStats.java
(original)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/CasManagerStats.java
Sun Nov 2 12:40:09 2014
@@ -18,16 +18,21 @@
*/
package org.apache.uima.ducc.container.jd;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
public class CasManagerStats {
-
+
+ public enum RetryReason { ProcessPreempt, ProcessDown, NodeDown,
UserErrorRetry, TimeoutRetry };
+
private AtomicInteger crTotal = new AtomicInteger(0);
private AtomicInteger crGets = new AtomicInteger(0);
private AtomicInteger retryQueuePuts = new AtomicInteger(0);
private AtomicInteger retryQueueGets = new AtomicInteger(0);
+ private ConcurrentHashMap<String,AtomicInteger> retryReasonsMap = new
ConcurrentHashMap<String,AtomicInteger>();
+
public void setCrTotal(int value) {
crTotal.set(value);
}
@@ -59,4 +64,27 @@ public class CasManagerStats {
public int getRetryQueueGets() {
return retryQueueGets.get();
}
+
+ public void incRetryReasons(RetryReason retryReason) {
+ if(retryReason != null) {
+ String key = retryReason.name();
+ retryReasonsMap.putIfAbsent(key, new AtomicInteger(0));
+ AtomicInteger value = retryReasonsMap.get(key);
+ value.incrementAndGet();
+ }
+ }
+
+ public ConcurrentHashMap<String,AtomicInteger> getRetryReasons() {
+ return retryReasonsMap;
+ }
+
+ public int getNumberOfPreemptions() {
+ int retVal = 0;
+ String key = RetryReason.ProcessPreempt.name();
+ if(retryReasonsMap.containsKey(key)) {
+ AtomicInteger value = retryReasonsMap.get(key);
+ retVal = value.get();
+ }
+ return retVal;
+ }
}