You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2013/12/13 08:19:13 UTC

git commit: Get rid of storing health stats at partition manager

Updated Branches:
  refs/heads/master 707788c89 -> 97569d5b4


Get rid of storing health stats at partition manager


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

Branch: refs/heads/master
Commit: 97569d5b4d843bcc53bf2767eaf1dde343a0adfb
Parents: 707788c
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Fri Dec 13 12:53:54 2013 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Fri Dec 13 12:53:54 2013 +0530

----------------------------------------------------------------------
 .../stratos/autoscaler/ClusterMonitor.java      |  1 +
 .../autoscaler/NetworkPartitionContext.java     |  3 ++
 .../health/HealthEventMessageDelegator.java     | 38 ++++++++++++++++++--
 3 files changed, 39 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/97569d5b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java
index 7ab70b7..1ae757f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java
@@ -173,6 +173,7 @@ public class ClusterMonitor implements Runnable{
 
                 scaleCheckFactHandle = AutoscalerRuleEvaluator.evaluateScaleCheck(scaleCheckKnowledgeSession
                         , scaleCheckFactHandle, networkPartitionContext);
+                networkPartitionContext.setRifReset(false);
             } else if(log.isDebugEnabled()){
                     log.debug(String.format("Scale will not run since the LB statistics have not received before this " +
                             "cycle for network partition %s", networkPartitionContext.getId()) );

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/97569d5b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
index 63a8343..1f7f029 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
@@ -265,6 +265,9 @@ public class NetworkPartitionContext {
 
     public void setRifReset(boolean rifReset) {
         this.rifReset = rifReset;
+        this.averageRifReset = rifReset;
+        this.gradientRifReset = rifReset;
+        this.secondDerivativeRifRest = rifReset;
     }
 
     public String getId() {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/97569d5b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
index e5ac2b9..fc4d30d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
@@ -201,7 +201,7 @@ public class HealthEventMessageDelegator implements Runnable {
         String memberId = event.getProperties().get("member_id");
         Member member = findMember(memberId);
         if(member != null) {
-            String networkPartitionId = PartitionManager.getInstance().getNetworkPartitionOfPartition(member.getPartitionId()).getId();
+            String networkPartitionId = findNetworkPartitionId(memberId);
             LoadAverage loadAverage = AutoscalerContext.getInstance().getMonitor(member.getClusterId())
                     .getNetworkPartitionCtxt(networkPartitionId)
                     .getPartitionCtxt(member.getPartitionId())
@@ -228,7 +228,7 @@ public class HealthEventMessageDelegator implements Runnable {
         String memberId = event.getProperties().get("member_id");
         Member member = findMember(memberId);
         if(member != null) {
-            String networkPartitionId = PartitionManager.getInstance().getNetworkPartitionOfPartition(member.getPartitionId()).getId();
+            String networkPartitionId = findNetworkPartitionId(memberId);
             MemoryConsumption memoryConsumption = AutoscalerContext.getInstance().getMonitor(member.getClusterId())
                     .getNetworkPartitionCtxt(networkPartitionId)
                     .getPartitionCtxt(member.getPartitionId())
@@ -250,6 +250,38 @@ public class HealthEventMessageDelegator implements Runnable {
             return null;
         }
     }
+    private String findClusterId(String memberId) {
+        for(Service service: TopologyManager.getTopology().getServices()){
+            for(Cluster cluster: service.getClusters()){
+                if(cluster.memberExists(memberId)){
+                    return cluster.getClusterId();
+                }
+            }
+        }
+        return null;
+    }
+
+    private NetworkPartitionContext findNetworkPartition(String memberId) {
+        for(Service service: TopologyManager.getTopology().getServices()){
+            for(Cluster cluster: service.getClusters()){
+                return AutoscalerContext.getInstance().getMonitor(cluster.getClusterId())
+                        .getNetworkPartitionCtxt(cluster.getMember(memberId).getNetworkPartitionId());
+            }
+        }
+        return null;
+    }
+
+
+    private String findNetworkPartitionId(String memberId) {
+        for(Service service: TopologyManager.getTopology().getServices()){
+            for(Cluster cluster: service.getClusters()){
+                if(cluster.memberExists(memberId)){
+                    return cluster.getMember(memberId).getNetworkPartitionId();
+                }
+            }
+        }
+        return null;
+    }
 
     private Member findMember(String memberId) {
         try {
@@ -284,7 +316,7 @@ public class HealthEventMessageDelegator implements Runnable {
             // start a new member in the same Partition
             String partitionId = monitor.getPartitonOfMember(memberId);
             Partition partition = monitor.getDeploymentPolicy().getPartitionById(partitionId);
-            NetworkPartitionContext nwPartitionCtxt = PartitionManager.getInstance().getNetworkPartitionOfPartition(partitionId);
+            NetworkPartitionContext nwPartitionCtxt = findNetworkPartition(memberId);
             PartitionContext partitionCtxt = nwPartitionCtxt.getPartitionCtxt(partitionId);
             
             String lbClusterId = AutoscalerRuleEvaluator.getLbClusterId(partitionCtxt, nwPartitionCtxt);