Adding Instance count rounding algorithm class
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/8c3a6c68 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/8c3a6c68 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/8c3a6c68 Branch: refs/heads/master Commit: 8c3a6c68833d2cef506ea9a33135b28ea005f3f5 Parents: ffe345f Author: Lahiru Sandaruwan <[email protected]> Authored: Sat Nov 8 20:02:21 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Sat Nov 8 20:02:21 2014 +0530 ---------------------------------------------------------------------- .../algorithm/AutoscaleAlgorithm.java | 2 +- .../InstanceCountRoundingAlgorithm.java | 22 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/8c3a6c68/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java index 64cba92..8ae0fb6 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java @@ -25,7 +25,7 @@ import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition; /** - * This interface is should be implemented by all the algorithms that are there to select partitions of a particuler + * This interface is should be implemented by all the algorithms that are there to select partitions of a particular * partition group */ public interface AutoscaleAlgorithm { http://git-wip-us.apache.org/repos/asf/stratos/blob/8c3a6c68/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/InstanceCountRoundingAlgorithm.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/InstanceCountRoundingAlgorithm.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/InstanceCountRoundingAlgorithm.java new file mode 100644 index 0000000..1d59c8e --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/InstanceCountRoundingAlgorithm.java @@ -0,0 +1,22 @@ +package org.apache.stratos.autoscaler.algorithm; + +public class InstanceCountRoundingAlgorithm { + + public double getFloorCount(float requiredInstances){ + + return (int)Math.floor(requiredInstances); + } + + public int getCeilCount(float requiredInstances){ + + return (int)Math.ceil(requiredInstances); + } + + public int getFractionBasedCount(float requiredInstances, float fraction){ + + return (requiredInstances - Math.floor(requiredInstances) > fraction) ? (int)Math.ceil(requiredInstances) + : (int)Math.floor(requiredInstances); + } + + +}
