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/05/20 18:04:09 UTC
svn commit: r1680615 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event:
OrchestratorAbbreviatedStateDuccEvent.java OrchestratorStateDuccEvent.java
Author: degenaro
Date: Wed May 20 16:04:09 2015
New Revision: 1680615
URL: http://svn.apache.org/r1680615
Log:
UIMA-4394 DUCC Orchestrator (OR) reduce publication size comprising command line & especially classpath
Removed:
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/OrchestratorAbbreviatedStateDuccEvent.java
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/OrchestratorStateDuccEvent.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/OrchestratorStateDuccEvent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/OrchestratorStateDuccEvent.java?rev=1680615&r1=1680614&r2=1680615&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/OrchestratorStateDuccEvent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/OrchestratorStateDuccEvent.java Wed May 20 16:04:09 2015
@@ -18,82 +18,112 @@
*/
package org.apache.uima.ducc.transport.event;
-import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentHashMap;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectOutputStream;
+import org.apache.uima.ducc.common.utils.DuccLogger;
import org.apache.uima.ducc.common.utils.id.DuccId;
-import org.apache.uima.ducc.transport.cmdline.ICommandLine;
-import org.apache.uima.ducc.transport.event.common.DuccWorkJob;
import org.apache.uima.ducc.transport.event.common.DuccWorkMap;
import org.apache.uima.ducc.transport.event.common.IDuccWork;
+import org.apache.uima.ducc.transport.event.common.IDuccWorkExecutable;
+import org.apache.uima.ducc.transport.event.common.IDuccWorkJob;
+import org.apache.uima.ducc.transport.event.common.IDuccWorkService;
public class OrchestratorStateDuccEvent extends AbstractDuccEvent {
-
- private static final long serialVersionUID = 3637372507135841728L;
-
- private DuccWorkMap workMap;
- private ConcurrentHashMap<String, ICommandLine> serviceCmdLineMap = new ConcurrentHashMap<String, ICommandLine>();
+ private static final long serialVersionUID = 2L;
+
+ private static DuccId jobid = null;
+ private static DuccLogger logger = null;
+
+ private DuccWorkMap workMap = null;
+
public OrchestratorStateDuccEvent() {
super(EventType.ORCHESTRATOR_STATE);
}
+ public OrchestratorStateDuccEvent(DuccLogger duccLogger) {
+ super(EventType.ORCHESTRATOR_STATE);
+ logger = duccLogger;
+ }
+
public void setWorkMap(DuccWorkMap value) {
this.workMap = value.deepCopy();
- //compress(this.workMap); // UIMA-4258, can't yet compress because of DUCC_SERVICE_INSTANCE
+ trim();
}
public DuccWorkMap getWorkMap() {
DuccWorkMap value = this.workMap.deepCopy();
- //uncompress(value); // UIMA-4258, can't yet compress because of DUCC_SERVICE_INSTANCE
return value;
}
- @SuppressWarnings("unused")
- private void compress(DuccWorkMap map) {
- if(map != null) {
- if(serviceCmdLineMap != null) {
- for(Entry<DuccId, IDuccWork> entry : map.getMap().entrySet()) {
- IDuccWork dw = entry.getValue();
- switch(dw.getDuccType()) {
- case Service:
- DuccWorkJob dwj = (DuccWorkJob) dw;
- String sid = dwj.getServiceId();
- if(sid != null) {
- ICommandLine cl = dwj.getCommandLine();
- if(cl != null) {
- serviceCmdLineMap.put(sid, cl);
- }
- }
- default:
- break;
- }
- }
+ private int sizeOf(Object object) {
+ String location = "sizeOf";
+ int retVal = 0;
+ try {
+ if(object != null) {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream os = new ObjectOutputStream(bos);
+ os.writeObject(object);
+ String string = bos.toString();
+ os.close();
+ retVal = string.length();
}
}
+ catch(Exception e) {
+ if(logger != null) {
+ logger.error(location, jobid, e);
+ }
+ else {
+ e.printStackTrace();
+ }
+ }
+ return retVal;
}
- @SuppressWarnings("unused")
- private void uncompress(DuccWorkMap map) {
- if(map != null) {
- if(serviceCmdLineMap != null) {
- for(Entry<DuccId, IDuccWork> entry : map.getMap().entrySet()) {
- IDuccWork dw = entry.getValue();
- switch(dw.getDuccType()) {
- case Service:
- DuccWorkJob dwj = (DuccWorkJob) dw;
- String sid = dwj.getServiceId();
- if(sid != null) {
- ICommandLine cl = serviceCmdLineMap.get(sid);
- if(cl != null) {
- dwj.setCommandLine(cl);
- }
- }
- default:
- break;
- }
+ private void trim() {
+ String location = "trim";
+ int bytesTrimmed = 0;
+ for(DuccId duccId : workMap.keySet()) {
+ IDuccWork dw = (IDuccWork) workMap.get(duccId);
+ if(dw instanceof IDuccWorkJob) {
+ IDuccWorkJob job = (IDuccWorkJob) dw;
+ if(logger != null) {
+ int s1 = sizeOf(job.getCommandLine());
+ int s2 = sizeOf(job.getDriver().getCommandLine());
+ bytesTrimmed = bytesTrimmed+(s1+s2);
+ String message = "jd:"+s1+" jp:"+s2+" total:"+bytesTrimmed;
+ logger.trace(location, duccId, message);
+ }
+ job.setCommandLine(null);
+ job.getDriver().setCommandLine(null);
+ }
+ else if(dw instanceof IDuccWorkService) {
+ IDuccWorkJob service = (IDuccWorkJob) dw;
+ if(logger != null) {
+ int s1 = 0;
+ int s2 = sizeOf(service.getCommandLine());
+ bytesTrimmed = bytesTrimmed+(s1+s2);
+ String message = "sp:"+s2+" total:"+bytesTrimmed;
+ logger.trace(location, duccId, message);
+ }
+ service.setCommandLine(null);
+ }
+ else if(dw instanceof IDuccWorkExecutable) {
+ IDuccWorkExecutable dwe = (IDuccWorkExecutable) dw;
+ if(logger != null) {
+ int s1 = sizeOf(dwe.getCommandLine());
+ int s2 = 0;
+ bytesTrimmed = bytesTrimmed+(s1+s2);
+ String message = "mr:"+s1+" total:"+bytesTrimmed;
+ logger.trace(location, duccId, message);
}
+ dwe.setCommandLine(null);
}
}
+ if(logger != null) {
+ String message = "total:"+bytesTrimmed;
+ logger.debug(location, jobid, message);
+ }
}
}