Repository: stratos
Updated Branches:
  refs/heads/master 5f44b024d -> d06401f70


Allow LB requests in flight to send not defined instance id


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/d06401f7
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/d06401f7
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/d06401f7

Branch: refs/heads/master
Commit: d06401f70e0116e7bf3ea3ab5dc28f5f20ef3fa3
Parents: 5f44b02
Author: Lahiru Sandaruwan <[email protected]>
Authored: Fri May 15 17:27:37 2015 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Fri May 15 17:27:47 2015 +0530

----------------------------------------------------------------------
 .../monitor/cluster/ClusterMonitor.java         | 94 ++++++++++++++++----
 1 file changed, 76 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d06401f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index 6973db1..6f9cbe4 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -826,13 +826,13 @@ public class ClusterMonitor extends Monitor {
             if (null != networkPartitionContext) {
 
                 int totalActiveMemberCount = 0;
-                for(InstanceContext clusterInstanceContext : 
networkPartitionContext.getActiveInstances()){
-                    if(clusterInstanceContext instanceof 
ClusterInstanceContext){
+                for (InstanceContext clusterInstanceContext : 
networkPartitionContext.getActiveInstances()) {
+                    if (clusterInstanceContext instanceof 
ClusterInstanceContext) {
                         totalActiveMemberCount += ((ClusterInstanceContext) 
clusterInstanceContext).getActiveMemberCount();
                     }
                 }
-                for(InstanceContext instanceContext : 
networkPartitionContext.getActiveInstances()){
-                    if(instanceContext instanceof ClusterInstanceContext){
+                for (InstanceContext instanceContext : 
networkPartitionContext.getActiveInstances()) {
+                    if (instanceContext instanceof ClusterInstanceContext) {
                         ClusterInstanceContext clusterInstanceContext = 
((ClusterInstanceContext) instanceContext);
                         clusterInstanceContext.setAverageRequestsInFlight(
                                 value * 
clusterInstanceContext.getActiveMemberCount() / totalActiveMemberCount);
@@ -866,18 +866,47 @@ public class ClusterMonitor extends Monitor {
         String clusterId = gradientOfRequestsInFlightEvent.getClusterId();
         String clusterInstanceId = 
gradientOfRequestsInFlightEvent.getClusterInstanceId();
         float value = gradientOfRequestsInFlightEvent.getValue();
+
         if (log.isDebugEnabled()) {
             log.debug(String.format("Gradient of Rif event: [cluster] %s 
[network-partition] %s [value] %s",
                     clusterId, networkPartitionId, value));
         }
-        ClusterInstanceContext clusterLevelNetworkPartitionContext = 
getClusterInstanceContext(
-                networkPartitionId, clusterInstanceId);
-        if (null != clusterLevelNetworkPartitionContext) {
-            
clusterLevelNetworkPartitionContext.setRequestsInFlightGradient(value);
+        if (clusterInstanceId.equals(NOT_DEFINED)) {
+
+            ClusterLevelNetworkPartitionContext networkPartitionContext = 
getNetworkPartitionContext(networkPartitionId);
+
+            if (null != networkPartitionContext) {
+
+                int totalActiveMemberCount = 0;
+                for (InstanceContext clusterInstanceContext : 
networkPartitionContext.getActiveInstances()) {
+                    if (clusterInstanceContext instanceof 
ClusterInstanceContext) {
+                        totalActiveMemberCount += ((ClusterInstanceContext) 
clusterInstanceContext).getActiveMemberCount();
+                    }
+                }
+                for (InstanceContext instanceContext : 
networkPartitionContext.getActiveInstances()) {
+                    if (instanceContext instanceof ClusterInstanceContext) {
+                        ClusterInstanceContext clusterInstanceContext = 
((ClusterInstanceContext) instanceContext);
+                        clusterInstanceContext.setRequestsInFlightGradient(
+                                value * 
clusterInstanceContext.getActiveMemberCount() / totalActiveMemberCount);
+                    }
+                }
+            } else {
+                if (log.isDebugEnabled()) {
+                    log.debug(String.format("Network partition context is not 
available for :" +
+                            " [network partition] %s", networkPartitionId));
+                }
+            }
         } else {
-            if (log.isDebugEnabled()) {
-                log.debug(String.format("Network partition context is not 
available for :" +
-                        " [network partition] %s", networkPartitionId));
+
+            ClusterInstanceContext clusterLevelNetworkPartitionContext = 
getClusterInstanceContext(
+                    networkPartitionId, clusterInstanceId);
+            if (null != clusterLevelNetworkPartitionContext) {
+                
clusterLevelNetworkPartitionContext.setRequestsInFlightGradient(value);
+            } else {
+                if (log.isDebugEnabled()) {
+                    log.debug(String.format("Network partition context is not 
available for :" +
+                            " [network partition] %s", networkPartitionId));
+                }
             }
         }
     }
@@ -893,14 +922,43 @@ public class ClusterMonitor extends Monitor {
             log.debug(String.format("Second derivative of Rif event: [cluster] 
%s "
                     + "[network-partition] %s [value] %s", clusterId, 
networkPartitionId, value));
         }
-        ClusterInstanceContext clusterLevelNetworkPartitionContext = 
getClusterInstanceContext(
-                networkPartitionId, clusterInstanceId);
-        if (null != clusterLevelNetworkPartitionContext) {
-            
clusterLevelNetworkPartitionContext.setRequestsInFlightSecondDerivative(value);
+
+        if (clusterInstanceId.equals(NOT_DEFINED)) {
+
+            ClusterLevelNetworkPartitionContext networkPartitionContext = 
getNetworkPartitionContext(networkPartitionId);
+
+            if (null != networkPartitionContext) {
+
+                int totalActiveMemberCount = 0;
+                for (InstanceContext clusterInstanceContext : 
networkPartitionContext.getActiveInstances()) {
+                    if (clusterInstanceContext instanceof 
ClusterInstanceContext) {
+                        totalActiveMemberCount += ((ClusterInstanceContext) 
clusterInstanceContext).getActiveMemberCount();
+                    }
+                }
+                for (InstanceContext instanceContext : 
networkPartitionContext.getActiveInstances()) {
+                    if (instanceContext instanceof ClusterInstanceContext) {
+                        ClusterInstanceContext clusterInstanceContext = 
((ClusterInstanceContext) instanceContext);
+                        
clusterInstanceContext.setRequestsInFlightSecondDerivative(
+                                value * 
clusterInstanceContext.getActiveMemberCount() / totalActiveMemberCount);
+                    }
+                }
+            } else {
+                if (log.isDebugEnabled()) {
+                    log.debug(String.format("Network partition context is not 
available for :" +
+                            " [network partition] %s", networkPartitionId));
+                }
+            }
         } else {
-            if (log.isDebugEnabled()) {
-                log.debug(String.format("Network partition context is not 
available for :" +
-                        " [network partition] %s", networkPartitionId));
+
+            ClusterInstanceContext clusterLevelNetworkPartitionContext = 
getClusterInstanceContext(
+                    networkPartitionId, clusterInstanceId);
+            if (null != clusterLevelNetworkPartitionContext) {
+                
clusterLevelNetworkPartitionContext.setRequestsInFlightSecondDerivative(value);
+            } else {
+                if (log.isDebugEnabled()) {
+                    log.debug(String.format("Network partition context is not 
available for :" +
+                            " [network partition] %s", networkPartitionId));
+                }
             }
         }
     }

Reply via email to