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 2015/02/11 20:24:43 UTC

svn commit: r1659047 - in /uima/sandbox/uima-ducc/trunk: src/main/resources/ uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/ uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/

Author: challngr
Date: Wed Feb 11 19:24:43 2015
New Revision: 1659047

URL: http://svn.apache.org/r1659047
Log:
UIAM-4234 Return offline and unresponsive status in query.

Modified:
    uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java

Modified: uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators?rev=1659047&r1=1659046&r2=1659047&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators (original)
+++ uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators Wed Feb 11 19:24:43 2015
@@ -17,6 +17,5 @@
 # under the License.
 # -----------------------------------------------------------------------
 
-bobtheadmin
-joehelper
-billywho
+ducc
+

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java?rev=1659047&r1=1659046&r2=1659047&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java Wed Feb 11 19:24:43 2015
@@ -31,7 +31,10 @@ public class RmQueriedMachine
     String nodepoolId;
     long memory;
     int order;
-    boolean blacklisted;
+    boolean blacklisted;                                         // UIMA-4142
+    boolean online;                                              // UIMA-4234
+    boolean responsive;                                          // UIMA-4234
+
     List<RmQueriedShare> shares = null;
     
     // UIMA-4142, account for blacklist
@@ -42,30 +45,37 @@ public class RmQueriedMachine
         this.memory = memory;
         this.order = order;
         this.blacklisted = blacklisted;
+        this.online = true;
+        this.responsive = true;
     }
 
+    public void setOffline()      { this.online = false; }       // UIMA-4234
+    public void setUnresponsive() { this.responsive = false; }   // UIMA-4234
+
     public void addShare(RmQueriedShare rqs)
     {
         if ( shares == null ) shares = new ArrayList<RmQueriedShare>();
         shares.add(rqs);
     }
 
-    public String getId()          { return name; }
-    public long getMemory()        { return memory; }
-    public int getShareOrder()     { return order; }
-    public boolean isBlacklisted() { return blacklisted; }        // UIMA-4142
+    public String getId()           { return name; }
+    public long getMemory()         { return memory; }
+    public int getShareOrder()      { return order; }
+    public boolean isBlacklisted()  { return blacklisted; }        // UIMA-4142
+    public boolean isOnline()       { return online; }             // UIMA-4142
+    public boolean isResponsive()   { return responsive; }         // UIMA-4142
     
-    static String fmt_s = "%20s %11s %15s %10s %5s %4s %s";
-    String        fmt_d = "%20s %11s %15s %10d %5d %4d" ;
+    static String fmt_s = "%20s %11s %6s %6s %15s %10s %5s %4s %s";
+    String        fmt_d = "%20s %11s %6s %6s %15s %10d %5d %4d" ;
 
     public static String header()
     {
-        return String.format(fmt_s, "Node", "Blacklisted", "Nodepool", "Memory", "Order", "Free", "Shares");
+        return String.format(fmt_s, "Node", "Blacklisted", "Online", "Status", "Nodepool", "Memory", "Order", "Free", "Shares");
     }
 
     public static String separator()
     {
-        return String.format(fmt_s, "--------------------", "-----------", "---------------", "----------", "-----", "----", "----------");
+        return String.format(fmt_s, "--------------------", "-----------", "------", "------", "---------------", "----------", "-----", "----", "----------");
     }
 
     public String toConsole() 
@@ -73,17 +83,17 @@ public class RmQueriedMachine
         StringBuffer sb = new StringBuffer();
 
         if ( shares == null ) {
-            sb.append(String.format(fmt_d, name, blacklisted, nodepoolId, memory, order, 0));
+            sb.append(String.format(fmt_d, name, blacklisted, online, (responsive ? "up" : "down"), nodepoolId, memory, order, 0));
             sb.append(" [none]");
         } else {
             int used = 0;
             for ( RmQueriedShare s : shares ) {                
                 used += s.getShareOrder();
             }
-            sb.append(String.format(fmt_d, name, blacklisted, nodepoolId, memory, order, order - used));
+            sb.append(String.format(fmt_d, name, blacklisted, online, (responsive ? "up" : "down"), nodepoolId, memory, order, order - used));
 
             String spacer = " ";
-            String altSpacer = "\n" + String.format(fmt_s, "", "", "", "", "", "", ""); // yes, blank, of exactly the right size
+            String altSpacer = "\n" + String.format(fmt_s, "", "", "", "", "", "", "", "", ""); // yes, blank, of exactly the right size
             for ( RmQueriedShare s : shares ) {                
                 sb.append(spacer);
                 sb.append(s.toConsole());
@@ -104,6 +114,10 @@ public class RmQueriedMachine
         sb.append(" ");
         sb.append(Boolean.toString(blacklisted));
         sb.append(" ");
+        sb.append(Boolean.toString(online));
+        sb.append(" ");
+        sb.append(responsive ? "up" : "down");
+        sb.append(" ");
         sb.append(Long.toString(memory));
         sb.append(" ");
         sb.append(Integer.toString(order));

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java?rev=1659047&r1=1659046&r2=1659047&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Machine.java Wed Feb 11 19:24:43 2015
@@ -347,6 +347,20 @@ public class Machine
         return ret;
     }
 
+    RmQueriedMachine queryOfflineMachine()              // UIMA-4234
+    {
+        RmQueriedMachine ret = queryMachine();
+        ret.setOffline();
+        return ret;
+    }
+
+    RmQueriedMachine queryUnresponsiveMachine()        // UIMA-4234
+    {
+        RmQueriedMachine ret = queryMachine();
+        ret.setUnresponsive();
+        return ret;
+    }
+
     /**
      * A machine's investment is the sum of it's share's investments.
      */

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java?rev=1659047&r1=1659046&r2=1659047&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java Wed Feb 11 19:24:43 2015
@@ -239,6 +239,20 @@ class NodePool
     }
 
     /**
+     * Return nodes varied off for me and my kids.
+     * UIMA-4234, More info in query occupancy
+     */
+    Map<Node, Machine> getUnresponsiveMachines()
+    {
+        @SuppressWarnings("unchecked")
+		Map<Node, Machine> ret = (Map<Node, Machine>) unresponsiveMachines.clone();
+        for (NodePool np : children.values()) {
+            ret.putAll(np.unresponsiveMachines);
+        }
+        return ret;
+    }
+
+    /**
      * Non-recursive machine count.
      */
     int countLocalMachines()

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=1659047&r1=1659046&r2=1659047&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 Wed Feb 11 19:24:43 2015
@@ -32,6 +32,7 @@ import org.apache.uima.ducc.common.NodeI
 import org.apache.uima.ducc.common.Pair;
 import org.apache.uima.ducc.common.admin.event.RmAdminQLoadReply;
 import org.apache.uima.ducc.common.admin.event.RmAdminQOccupancyReply;
+import org.apache.uima.ducc.common.admin.event.RmQueriedMachine;
 import org.apache.uima.ducc.common.component.AbstractDuccComponent;
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccProperties;
@@ -1233,10 +1234,32 @@ public class Scheduler
         // Not a cheap query, by the way.
         //
         for ( NodePool np : nodepools ) {
+
             Collection<Machine> machs = np.getAllMachines().values();        
             for ( Machine m : machs ) {            
                 ret.addMachine(m.queryMachine());
             }
+
+            Map<Node, Machine> offline      = np.getOfflineMachines();          // UIMA-4234
+            Map<Node, Machine> unresponsive = np.getUnresponsiveMachines();     // UIMA-4234
+
+            for ( Node n : offline.keySet() ) {
+                Machine m = offline.get(n);
+                RmQueriedMachine qm = m.queryMachine();
+                qm.setOffline();
+                if ( unresponsive.containsKey(n) ) {
+                    unresponsive.remove(n);
+                    qm.setUnresponsive();
+                }
+                ret.addMachine(qm);
+            }
+
+            for ( Node n : unresponsive.keySet() ) {
+                Machine m = unresponsive.get(n);
+                RmQueriedMachine qm = m.queryMachine();
+                qm.setUnresponsive();
+                ret.addMachine(qm);
+            }            
         }
 
         return ret;