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 2015/05/19 12:01:13 UTC
[6/6] stratos git commit: Update references of Network partition
contexs
Update references of Network partition contexs
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/080614ca
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/080614ca
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/080614ca
Branch: refs/heads/master
Commit: 080614ca0c20f78285f47702a6b8c9d98f0a9fea
Parents: dcbc80c
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue May 19 13:17:41 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue May 19 15:30:57 2015 +0530
----------------------------------------------------------------------
.../applications/topic/ApplicationBuilder.java | 5 +-
.../monitor/component/ApplicationMonitor.java | 2 +-
.../monitor/component/GroupMonitor.java | 61 +++++++++++---------
3 files changed, 37 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/080614ca/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index b0315b1..7a4df82 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -652,7 +652,7 @@ public class ApplicationBuilder {
ApplicationMonitor applicationMonitor = AutoscalerContext.getInstance().getAppMonitor(appId);
if (applicationMonitor != null) {
- NetworkPartitionContext context = applicationMonitor.
+ GroupLevelNetworkPartitionContext context = (GroupLevelNetworkPartitionContext) applicationMonitor.
getNetworkPartitionContext(networkPartitionId);
if (status == ApplicationStatus.Active) {
if (log.isDebugEnabled()) {
@@ -693,7 +693,8 @@ public class ApplicationBuilder {
String instanceId, String parentInstanceId) {
GroupMonitor monitor = getGroupMonitor(appId, groupId);
if (monitor != null) {
- NetworkPartitionContext context = monitor.getNetworkPartitionContext(networkPartitionId);
+ GroupLevelNetworkPartitionContext context
+ = (GroupLevelNetworkPartitionContext) monitor.getNetworkPartitionContext(networkPartitionId);
if (status == GroupStatus.Active) {
if (log.isDebugEnabled()) {
log.debug("Moving pending group instance to active list in [group] " + groupId
http://git-wip-us.apache.org/repos/asf/stratos/blob/080614ca/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
index f0dfd50..2d5ef12 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
@@ -144,7 +144,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
private void handleScalingMaxOut(InstanceContext instanceContext,
NetworkPartitionContext networkPartitionContext) {
- if (networkPartitionContext.getPendingInstancesCount() == 0) {
+ if (((ApplicationLevelNetworkPartitionContext) networkPartitionContext).getPendingInstancesCount() == 0) {
//handling the application bursting only when there are no pending instances found
try {
if (log.isInfoEnabled()) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/080614ca/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index a890824..b9f90b4 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -155,24 +155,26 @@ public class GroupMonitor extends ParentComponentMonitor {
}
}
- int nonTerminatedInstancesCount = networkPartitionContext.
+ GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+ = (GroupLevelNetworkPartitionContext) networkPartitionContext;
+ int nonTerminatedInstancesCount = groupLevelNetworkPartitionContext.
getNonTerminatedInstancesCount();
- int minInstances = ((GroupLevelNetworkPartitionContext) networkPartitionContext).
+ int minInstances = groupLevelNetworkPartitionContext.
getMinInstanceCount();
- int maxInstances = ((GroupLevelNetworkPartitionContext) networkPartitionContext).
+ int maxInstances = groupLevelNetworkPartitionContext.
getMaxInstanceCount();
- int activeInstances = networkPartitionContext.getActiveInstancesCount();
+ int activeInstances = groupLevelNetworkPartitionContext.getActiveInstancesCount();
if (nonTerminatedInstancesCount < minInstances) {
int instancesToBeCreated = minInstances - nonTerminatedInstancesCount;
for (int i = 0; i < instancesToBeCreated; i++) {
for (InstanceContext parentInstanceContext : parent.
- getNetworkPartitionContext(networkPartitionContext.getId()).
+ getNetworkPartitionContext(groupLevelNetworkPartitionContext.getId()).
getInstanceIdToInstanceContextMap().values()) {
//keep on scale-up/scale-down only if the application is active
ApplicationMonitor appMonitor = AutoscalerContext.getInstance().
getAppMonitor(appId);
- int activeAppInstances = appMonitor.
- getNetworkPartitionContext(networkPartitionContext.getId()).
+ int activeAppInstances = ((GroupLevelNetworkPartitionContext) appMonitor.
+ getNetworkPartitionContext(groupLevelNetworkPartitionContext.getId())).
getActiveInstancesCount();
if (activeAppInstances > 0) {
//Creating new group instance based on the existing parent instances
@@ -245,30 +247,31 @@ public class GroupMonitor extends ParentComponentMonitor {
// if it is a force scale-down
if (allChildrenScaleDown || forceScaleDown) {
if (hasScalingDependents) {
- if (nwPartitionContext.getNonTerminatedInstancesCount() >
- ((GroupLevelNetworkPartitionContext)
- nwPartitionContext).getMinInstanceCount()) {
+ GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+ = (GroupLevelNetworkPartitionContext) nwPartitionContext;
+ if (groupLevelNetworkPartitionContext.getNonTerminatedInstancesCount() >
+ groupLevelNetworkPartitionContext.getMinInstanceCount()) {
//Will scale down based on dependent manner
- float minInstances = ((GroupLevelNetworkPartitionContext)
- nwPartitionContext).getMinInstanceCount();
+ float minInstances = groupLevelNetworkPartitionContext.getMinInstanceCount();
float factor =
- (nwPartitionContext.getNonTerminatedInstancesCount() - 1) / minInstances;
- ScalingEvent scalingEvent = new ScalingEvent(this.id, nwPartitionContext.getId(),
+ (groupLevelNetworkPartitionContext.getNonTerminatedInstancesCount() - 1) / minInstances;
+ ScalingEvent scalingEvent = new ScalingEvent(this.id, groupLevelNetworkPartitionContext.getId(),
instanceContext.getId(), factor);
this.parent.onChildScalingEvent(scalingEvent);
} else {
//Parent has to handle this scale down as by dependent scale down
ScalingDownBeyondMinEvent newScalingDownBeyondMinEvent =
new ScalingDownBeyondMinEvent(this.id,
- nwPartitionContext.getId(), instanceContext.getParentInstanceId());
+ groupLevelNetworkPartitionContext.getId(), instanceContext.getParentInstanceId());
this.parent.onChildScalingDownBeyondMinEvent(newScalingDownBeyondMinEvent);
}
} else {
if (groupScalingEnabled) {
- if (nwPartitionContext.getNonTerminatedInstancesCount() >
- ((GroupLevelNetworkPartitionContext)
- nwPartitionContext).getMinInstanceCount()) {
+ GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+ = (GroupLevelNetworkPartitionContext) nwPartitionContext;
+ if (groupLevelNetworkPartitionContext.getNonTerminatedInstancesCount() >
+ groupLevelNetworkPartitionContext.getMinInstanceCount()) {
//send terminating to the specific group instance in the scale down
ApplicationBuilder.handleGroupTerminatingEvent(this.appId, this.id,
instanceContext.getId());
@@ -295,7 +298,7 @@ public class GroupMonitor extends ParentComponentMonitor {
private void createGroupInstanceOnScaling(final NetworkPartitionContext networkPartitionContext,
final String parentInstanceId) {
if (groupScalingEnabled) {
- if (networkPartitionContext.getPendingInstancesCount() == 0) {
+ if (((GroupLevelNetworkPartitionContext)networkPartitionContext).getPendingInstancesCount() == 0) {
//one of the child is loaded and max out.
// Hence creating new group instance
if (log.isDebugEnabled()) {
@@ -352,10 +355,11 @@ public class GroupMonitor extends ParentComponentMonitor {
log.debug("This [Group] " + id + " [scale-up] dependencies. " +
"Hence notifying the [parent] " + parent.getId());
}
+ GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+ = (GroupLevelNetworkPartitionContext) networkPartitionContext;
//notifying the parent when scale dependents found
- int maxInstances = ((GroupLevelNetworkPartitionContext)
- networkPartitionContext).getMaxInstanceCount();
- if (groupScalingEnabled && maxInstances > networkPartitionContext.
+ int maxInstances = groupLevelNetworkPartitionContext.getMaxInstanceCount();
+ if (groupScalingEnabled && maxInstances > groupLevelNetworkPartitionContext.
getNonTerminatedInstancesCount()) {
//increase group by one more instance and calculate the factor for the group scaling
// and notify parent to scale all the dependent in parallel with this factor
@@ -563,9 +567,10 @@ public class GroupMonitor extends ParentComponentMonitor {
get(networkPartitionId);
float factor = scalingEvent.getFactor();
- int currentInstances = networkPartitionContext.getNonTerminatedInstancesCount();
- float requiredInstances = factor * ((GroupLevelNetworkPartitionContext)
- networkPartitionContext).getMinInstanceCount();
+ GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+ = (GroupLevelNetworkPartitionContext) networkPartitionContext;
+ int currentInstances = groupLevelNetworkPartitionContext.getNonTerminatedInstancesCount();
+ float requiredInstances = factor * groupLevelNetworkPartitionContext.getMinInstanceCount();
int ceilingRequiredInstances = (int) Math.ceil(requiredInstances);
if (ceilingRequiredInstances > currentInstances) {
@@ -580,13 +585,13 @@ public class GroupMonitor extends ParentComponentMonitor {
for (int count = 0; count < instancesToBeTerminated; count++) {
//have to scale down
- if (networkPartitionContext.getPendingInstancesCount() != 0) {
+ if (groupLevelNetworkPartitionContext.getPendingInstancesCount() != 0) {
ApplicationBuilder.handleGroupTerminatingEvent(appId, this.id,
- networkPartitionContext.getPendingInstances().get(0).getId());
+ groupLevelNetworkPartitionContext.getPendingInstances().get(0).getId());
} else {
List<InstanceContext> activeInstances =
- networkPartitionContext.getActiveInstances();
+ groupLevelNetworkPartitionContext.getActiveInstances();
ApplicationBuilder.handleGroupTerminatingEvent(appId, this.id,
activeInstances.get(activeInstances.size() - 1).toString());
}