You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ch...@apache.org on 2013/03/25 19:57:06 UTC
svn commit: r1460845 - in /uima/sandbox/uima-ducc/trunk:
uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/
uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/
uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/
Author: challngr
Date: Mon Mar 25 18:57:05 2013
New Revision: 1460845
URL: http://svn.apache.org/r1460845
Log:
UIMA-2772
Add Node object for scheduled resources to RM published state.
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Share.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/IResource.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/Resource.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java?rev=1460845&r1=1460844&r2=1460845&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java Mon Mar 25 18:57:05 2013
@@ -599,6 +599,7 @@ public class JobManagerConverter
}
if ( !scheduler.ready() ) {
+ // JRC dumpOrchestratorState(jobMap);
logger.info(methodName, null, "Orchestrator event is discarded because scheduler is not yet ready.");
return;
}
@@ -765,7 +766,7 @@ public class JobManagerConverter
shares = j.getAssignedShares();
if ( shares != null ) {
for ( Share s : shares.values() ) {
- Resource r = new Resource(s.getId(), s.getNodeIdentity(), s.isPurged(), s.getShareOrder());
+ Resource r = new Resource(s.getId(), s.getNode(), s.isPurged(), s.getShareOrder());
all_shares.put(s.getId(), r);
//logger.debug(methodName, j.getId(), "Assigned:", s.toString());
}
@@ -774,7 +775,7 @@ public class JobManagerConverter
shares = shrunken.get(j.getId());
if ( shares != null ) {
for ( Share s : shares.values() ) {
- Resource r = new Resource(s.getId(), s.getNodeIdentity(), s.isPurged(), s.getShareOrder());
+ Resource r = new Resource(s.getId(), s.getNode(), s.isPurged(), s.getShareOrder());
shrunken_shares.put(s.getId(), r);
//logger.debug(methodName, j.getId(), "Shrunken:", s.toString());
}
@@ -783,7 +784,7 @@ public class JobManagerConverter
shares = expanded.get(j.getId());
if ( shares != null ) {
for ( Share s : shares.values() ) {
- Resource r = new Resource(s.getId(), s.getNodeIdentity(), s.isPurged(), s.getShareOrder());
+ Resource r = new Resource(s.getId(), s.getNode(), s.isPurged(), s.getShareOrder());
expanded_shares.put(s.getId(), r);
//logger.debug(methodName, j.getId(), "Expanded:", s.toString());
}
@@ -808,5 +809,59 @@ public class JobManagerConverter
}
+ // JRC
+// void dumpOrchestratorState(DuccWorkMap jobmap)
+// {
+// String methodName = "dumpOrchetratorState";
+// for ( IDuccWork w : jobmap.values() ) {
+// String prefix = "?";
+// switch ( w.getDuccType() ) {
+// case Job:
+// prefix = "J";
+// break;
+// case Service:
+// prefix = "S";
+// break;
+// case Reservation:
+// prefix = "R";
+// break;
+// }
+
+// if ( w.isCompleted() ) {
+// logger.info(methodName, w.getDuccId(), "Ignoring completed work", prefix, w.getDuccId());
+// }
+
+// switch ( w.getDuccType() ) {
+// case Job: {
+// IDuccWorkExecutable de = (IDuccWorkExecutable) w;
+// IDuccProcessMap pm = de.getProcessMap();
+// logger.info(methodName, w.getDuccId(), "Received work of type", prefix, w.getDuccType(), "with", pm.size(), "processes.");
+// for ( IDuccProcess proc : pm.values() ) {
+// String pid = proc.getPID();
+// ProcessState state = proc.getProcessState();
+// logger.info(methodName, w.getDuccId(), "Found process", pid, "in state", state, "is complete:", proc.isComplete());
+// }
+// }
+// break;
+// case Service: {
+// IDuccWorkExecutable de = (IDuccWorkExecutable) w;
+// IDuccProcessMap pm = de.getProcessMap();
+// logger.info(methodName, w.getDuccId(), "Received work of type", prefix, w.getDuccType(), "with", pm.size(), "processes.");
+// }
+// break;
+// case Reservation: {
+// IDuccWorkReservation de = (IDuccWorkReservation) w;
+// IDuccReservationMap rm = de.getReservationMap();
+// logger.info(methodName, w.getDuccId(), "Received work of type", prefix, w.getDuccType(), "with", rm.size(), "nodes.");
+// }
+// break;
+// default:
+// logger.info(methodName, w.getDuccId(), "Received work of type ?", w.getDuccType());
+// break;
+// }
+
+// logger.info(methodName, null, "Work:", w);
+// }
+// }
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java?rev=1460845&r1=1460844&r2=1460845&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java Mon Mar 25 18:57:05 2013
@@ -39,6 +39,8 @@ import org.apache.uima.ducc.common.utils
import org.apache.uima.ducc.common.utils.id.DuccId;
import org.apache.uima.ducc.common.utils.id.DuccIdFactory;
+import com.google.gson.Gson;
+
/**
* This process orchestrates scheduling.
@@ -888,9 +890,18 @@ public class Scheduler
private int total_arrivals = 0;
public void nodeArrives(Node node)
{
- // String methodName = "nodeArrives";
+ String methodName = "nodeArrives";
// The first block insures the node is in the scheduler's records as soon as possible
+ try {
+ Gson gson = new Gson();
+ String gnode = gson.toJson(node);
+ logger.info(methodName, null, "GSON:", gnode);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ logger.error(methodName, null, e);
+ }
+
total_arrivals++; // report these in the main schedule loop
synchronized(this) {
// the amount of memory available for shares, adjusted with configured overhead
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Share.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Share.java?rev=1460845&r1=1460844&r2=1460845&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Share.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Share.java Mon Mar 25 18:57:05 2013
@@ -18,10 +18,11 @@
*/
package org.apache.uima.ducc.rm.scheduler;
+import org.apache.uima.ducc.common.Node;
import org.apache.uima.ducc.common.NodeIdentity;
import org.apache.uima.ducc.common.utils.id.DuccId;
-import org.apache.uima.ducc.transport.event.common.ITimeWindow;
import org.apache.uima.ducc.transport.event.common.IProcessState.ProcessState;
+import org.apache.uima.ducc.transport.event.common.ITimeWindow;
@@ -156,6 +157,11 @@ public class Share
return machine.getNodeIdentity();
}
+ public Node getNode()
+ {
+ return machine.getNode();
+ }
+
/**
* The order of the share itself.
*/
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/IResource.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/IResource.java?rev=1460845&r1=1460844&r2=1460845&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/IResource.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/IResource.java Mon Mar 25 18:57:05 2013
@@ -20,6 +20,7 @@ package org.apache.uima.ducc.transport.e
import java.io.Serializable;
+import org.apache.uima.ducc.common.Node;
import org.apache.uima.ducc.common.NodeIdentity;
import org.apache.uima.ducc.common.utils.id.DuccId;
@@ -42,6 +43,11 @@ public interface IResource extends Seria
NodeIdentity getNodeId(); // The node where this resource resides, as provided by the Node Agent
/**
+ * Returns the actual node object for the resource.
+ */
+ Node getNode();
+
+ /**
* If true, this share has been purged because its node went AWOL.
*/
boolean isPurged();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/Resource.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/Resource.java?rev=1460845&r1=1460844&r2=1460845&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/Resource.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/rm/Resource.java Mon Mar 25 18:57:05 2013
@@ -18,16 +18,17 @@
*/
package org.apache.uima.ducc.transport.event.rm;
+import org.apache.uima.ducc.common.Node;
import org.apache.uima.ducc.common.NodeIdentity;
import org.apache.uima.ducc.common.utils.id.DuccId;
public class Resource implements IResource {
private static final long serialVersionUID = 1L;
- private DuccId duccId; // DuccId of the share, assigned by RM
- private NodeIdentity nodeId; // Node id, assigned by Agent
- private boolean purged; // Purged, for node failure
- private int qShares; // Number of quantum shares this resource occupies
+ private DuccId duccId; // DuccId of the share, assigned by RM
+ private Node node; // Node id, assigned by Agent
+ private boolean purged; // Purged, for node failure
+ private int qShares; // Number of quantum shares this resource occupies
// dissallow
@SuppressWarnings("unused")
@@ -35,33 +36,34 @@ public class Resource implements IResour
{
}
- public Resource(DuccId duccId, NodeIdentity nodeId, boolean purged, int qShares)
+ public Resource(DuccId duccId, Node node, boolean purged, int qShares)
{
this.duccId = duccId;
- this.nodeId = nodeId;
+ this.node = node;
this.purged = purged;
this.qShares = qShares;
}
- @Override
public DuccId getId()
{
return duccId;
}
- @Override
public NodeIdentity getNodeId()
{
- return nodeId;
+ return node.getNodeIdentity();
+ }
+
+ public Node getNode()
+ {
+ return node;
}
- @Override
public boolean isPurged()
{
return purged;
}
- @Override
public int countShares()
{
return qShares;
@@ -69,6 +71,6 @@ public class Resource implements IResour
public String toString()
{
- return nodeId.getName() + "." + duccId.getFriendly() + ( purged ? "[P]" : "");
+ return getNodeId().getName() + "." + duccId.getFriendly() + ( purged ? "[P]" : "");
}
}