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);