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 2015/03/31 14:08:04 UTC
svn commit: r1670312 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd:
fsm/wi/ActionEnd.java fsm/wi/ActionGet.java log/LoggerHelper.java
wi/IWorkItem.java wi/WiTracker.java wi/WorkItem.java
Author: degenaro
Date: Tue Mar 31 12:08:03 2015
New Revision: 1670312
URL: http://svn.apache.org/r1670312
Log:
UIMA-4318 DUCC Web Server (WS) reduce JD storage use
Track work items by seqNo, not RemoteWorkerThread.
Modified:
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/fsm/wi/ActionGet.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/LoggerHelper.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WiTracker.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java
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=1670312&r1=1670311&r2=1670312&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 Tue Mar 31 12:08:03 2015
@@ -40,9 +40,7 @@ import org.apache.uima.ducc.container.jd
import org.apache.uima.ducc.container.jd.log.ErrorLogger;
import org.apache.uima.ducc.container.jd.log.LoggerHelper;
import org.apache.uima.ducc.container.jd.mh.RemoteWorkerProcess;
-import org.apache.uima.ducc.container.jd.mh.RemoteWorkerThread;
import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerProcess;
-import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerThread;
import org.apache.uima.ducc.container.jd.timeout.TimeoutManager;
import org.apache.uima.ducc.container.jd.user.error.classload.ProxyUserErrorException;
import org.apache.uima.ducc.container.jd.user.error.classload.ProxyUserErrorStringify;
@@ -269,7 +267,6 @@ public class ActionEnd extends Action im
if(actionData != null) {
IWorkItem wi = actionData.getWorkItem();
IMetaCasTransaction trans = actionData.getMetaCasTransaction();
- IRemoteWorkerThread rwt = new RemoteWorkerThread(trans);
IRemoteWorkerProcess rwp = new RemoteWorkerProcess(trans);
IMetaCas metaCas = wi.getMetaCas();
JobDriver jd = JobDriver.getInstance();
@@ -281,7 +278,7 @@ public class ActionEnd extends Action im
IProcessStatistics pStats = jdh.getProcessStatistics(rwp);
//
if(metaCas != null) {
- WiTracker.getInstance().unassign(rwt);
+ WiTracker.getInstance().unassign(wi);
//
TimeoutManager toMgr = TimeoutManager.getInstance();
toMgr.receivedAck(actionData);
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.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/ActionGet.java?rev=1670312&r1=1670311&r2=1670312&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java Tue Mar 31 12:08:03 2015
@@ -115,7 +115,7 @@ public class ActionGet implements IActio
IEvent event = null;
//
if(metaCas != null) {
- WiTracker.getInstance().assign(rwt, wi);
+ WiTracker.getInstance().assign(wi, rwt);
int seqNo = metaCasHelper.getSystemKey();
String wiId = metaCas.getUserKey();
String node = rwt.getNodeAddress();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/LoggerHelper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/LoggerHelper.java?rev=1670312&r1=1670311&r2=1670312&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/LoggerHelper.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/LoggerHelper.java Tue Mar 31 12:08:03 2015
@@ -139,12 +139,12 @@ public class LoggerHelper {
return mb;
}
- public static MessageBuffer getMessageBuffer(IRemoteWorkerThread rwt, IWorkItem wi) {
+ public static MessageBuffer getMessageBuffer(IWorkItem wi, IRemoteWorkerThread rwt) {
String location = "getMessageBuffer";
MessageBuffer mb = new MessageBuffer();
try {
mb.append(Standardize.Label.seqNo.get()+getSeqNo(wi));
- mb.append(Standardize.Label.id.get()+getSeqNo(wi));
+ mb.append(Standardize.Label.id.get()+getId(wi));
mb.append(Standardize.Label.remote.get()+rwt.toString());
}
catch(Exception e) {
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java?rev=1670312&r1=1670311&r2=1670312&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java Tue Mar 31 12:08:03 2015
@@ -21,7 +21,7 @@ package org.apache.uima.ducc.container.j
import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
import org.apache.uima.ducc.container.net.iface.IMetaCas;
-public interface IWorkItem {
+public interface IWorkItem extends Comparable<Object> {
public void setMetaCas(IMetaCas value);
public IMetaCas getMetaCas();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WiTracker.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WiTracker.java?rev=1670312&r1=1670311&r2=1670312&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WiTracker.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WiTracker.java Tue Mar 31 12:08:03 2015
@@ -31,8 +31,8 @@ import org.apache.uima.ducc.container.jd
public class WiTracker {
- private ConcurrentHashMap<IRemoteWorkerThread, IWorkItem> map = new ConcurrentHashMap<IRemoteWorkerThread, IWorkItem>();
-
+ private ConcurrentHashMap<IWorkItem, IRemoteWorkerThread> map = new ConcurrentHashMap<IWorkItem, IRemoteWorkerThread>();
+
private static Logger logger = Logger.getLogger(WiTracker.class, IComponent.Id.JD.name());
private static WiTracker instance = new WiTracker();
@@ -41,10 +41,10 @@ public class WiTracker {
return instance;
}
- public void assign(IRemoteWorkerThread rwt, IWorkItem wi) {
+ public void assign(IWorkItem wi, IRemoteWorkerThread rwt) {
String location = "assign";
try {
- map.put(rwt, wi);
+ map.put(wi, rwt);
report();
}
catch(Exception e) {
@@ -52,45 +52,22 @@ public class WiTracker {
}
}
- public void unassign(IRemoteWorkerThread rwt) {
- String location = "unassign";
- try {
- map.remove(rwt);
+ public void unassign(IWorkItem wi) {
+ if(wi != null) {
+ map.remove(wi);
report();
}
- catch(Exception e) {
- logger.error(location, ILogger.null_id, e);
- }
}
-
- private IRemoteWorkerThread find(IWorkItem wi) {
- IRemoteWorkerThread rwt = null;
- for(Entry<IRemoteWorkerThread, IWorkItem> entry : map.entrySet()) {
- if(wi.getSeqNo() == entry.getValue().getSeqNo()) {
- rwt = entry.getKey();
- break;
- }
- }
- return rwt;
- }
-
- public void unassign(IWorkItem value) {
- IRemoteWorkerThread rwt = find(value);
- if(rwt != null) {
- map.remove(rwt);
- report();
- }
- }
-
+
private void report() {
String location = "report";
MessageBuffer mb = new MessageBuffer();
mb.append(Standardize.Label.size.get()+map.size());
logger.trace(location, ILogger.null_id, mb.toString());
- for(Entry<IRemoteWorkerThread, IWorkItem> entry : map.entrySet()) {
- IRemoteWorkerThread rwt = entry.getKey();
- IWorkItem wi = entry.getValue();
- MessageBuffer mb1 = LoggerHelper.getMessageBuffer(rwt, wi);
+ for(Entry<IWorkItem, IRemoteWorkerThread> entry : map.entrySet()) {
+ IWorkItem wi = entry.getKey();
+ IRemoteWorkerThread rwt = entry.getValue();
+ MessageBuffer mb1 = LoggerHelper.getMessageBuffer(wi, rwt);
logger.trace(location, ILogger.null_id, mb1.toString());
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java?rev=1670312&r1=1670311&r2=1670312&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java Tue Mar 31 12:08:03 2015
@@ -21,11 +21,16 @@ package org.apache.uima.ducc.container.j
import org.apache.uima.ducc.container.common.Assertion;
import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
import org.apache.uima.ducc.container.common.fsm.iface.IState;
+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.fsm.wi.WiFsm;
import org.apache.uima.ducc.container.net.iface.IMetaCas;
public class WorkItem implements IWorkItem {
+ private static Logger logger = Logger.getLogger(WorkItem.class, IComponent.Id.JD.name());
+
private IMetaCas metaCas = null;
private IFsm fsm = null;
@@ -185,4 +190,54 @@ public class WorkItem implements IWorkIt
return retVal;
}
+ // Comparable
+
+ @Override
+ public int compareTo(Object o) {
+ String location = "compareTo";
+ int retVal = 0;
+ try {
+ if(o != null) {
+ if(o instanceof IWorkItem) {
+ IWorkItem that = (IWorkItem) o;
+ Integer iThis = new Integer(this.getSeqNo());
+ Integer iThat = new Integer(that.getSeqNo());
+ retVal = iThis.compareTo(iThat);
+ }
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, ILogger.null_id, e);
+ }
+ return retVal;
+ }
+
+ @Override
+ public int hashCode() {
+ return this.getSeqNo();
+ }
+
+
+ @Override
+ public boolean equals(Object obj) {
+ String location = "equals";
+ boolean retVal = false;
+ try {
+ if(obj != null) {
+ if(this == obj) {
+ retVal = true;
+ }
+ else {
+ IWorkItem that = (IWorkItem) obj;
+ if(this.compareTo(that) == 0) {
+ retVal = true;
+ }
+ }
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, ILogger.null_id, e);
+ }
+ return retVal;
+ }
}