PowerVmAllocationPolicyMigrationLocalRegression (cloudsim 3.1-SNAPSHOT API)

org.cloudbus.cloudsim.power

## Class PowerVmAllocationPolicyMigrationLocalRegression

- java.lang.Object
- - org.cloudbus.cloudsim.VmAllocationPolicy
  - - org.cloudbus.cloudsim.power.PowerVmAllocationPolicyAbstract
    - - org.cloudbus.cloudsim.power.PowerVmAllocationPolicyMigrationAbstract
      - - org.cloudbus.cloudsim.power.PowerVmAllocationPolicyMigrationLocalRegression

- Direct Known Subclasses:
    PowerVmAllocationPolicyMigrationLocalRegressionRobust

      public class PowerVmAllocationPolicyMigrationLocalRegression
      extends PowerVmAllocationPolicyMigrationAbstract

  The Local Regression (LR) VM allocation policy. If you are using any algorithms, policies or workload included in the power package, please cite the following paper: Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers", Concurrency and Computation: Practice and Experience, ISSN: 1532-0626, Wiley Press, New York, USA, 2011, DOI: 10.1002/cpe.1867
  Since:
    CloudSim Toolkit 3.0
  Author:
    Anton Beloglazov

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PowerVmAllocationPolicyMigrationLocalRegression(List<? extends Host> hostList, PowerVmSelectionPolicy vmSelectionPolicy, double safetyParameter, double schedulingInterval, PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)` Instantiates a new power vm allocation policy migration local regression.

    `PowerVmAllocationPolicyMigrationLocalRegression(List<? extends Host> hostList, PowerVmSelectionPolicy vmSelectionPolicy, double safetyParameter, double schedulingInterval, PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy, double utilizationThreshold)`
    Instantiates a new power vm allocation policy migration local regression.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PowerVmAllocationPolicyMigrationAbstract` | `getFallbackVmAllocationPolicy()` Gets the fallback vm allocation policy.
    `protected double` | `getMaximumVmMigrationTime(PowerHost host)` Gets the maximum vm migration time.
    `protected double[]` | `getParameterEstimates(double[] utilizationHistoryReversed)` Gets the parameter estimates.
    `double` | `getSafetyParameter()`
    `protected double` | `getSchedulingInterval()` Gets the scheduling interval.
    `protected boolean` | `isHostOverUtilized(PowerHost host)` Checks if is host over utilized.
    `void` | `setFallbackVmAllocationPolicy(PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)` Sets the fallback vm allocation policy.
    `void` | `setSafetyParameter(double safetyParameter)`
    `protected void` | `setSchedulingInterval(double schedulingInterval)` Sets the scheduling interval.

    - ### Methods inherited from class org.cloudbus.cloudsim.power.PowerVmAllocationPolicyMigrationAbstract

      `addHistoryEntry, areAllVmsMigratingOutOrAnyVmMigratingIn, extractHostListFromMigrationMap, findHostForVm, findHostForVm, getExecutionTimeHistoryHostSelection, getExecutionTimeHistoryTotal, getExecutionTimeHistoryVmReallocation, getExecutionTimeHistoryVmSelection, getMaxUtilizationAfterAllocation, getMetricHistory, getMigrationMapFromUnderUtilizedHosts, getNewVmPlacement, getNewVmPlacementFromUnderUtilizedHost, getOverUtilizedHosts, getPowerAfterAllocation, getSavedAllocation, getSwitchedOffHosts, getTimeHistory, getUnderUtilizedHost, getUtilizationHistory, getVmSelectionPolicy, getVmsToMigrateFromHosts, getVmsToMigrateFromUnderUtilizedHost, isHostOverUtilizedAfterAllocation, optimizeAllocation, printOverUtilizedHosts, restoreAllocation, saveAllocation, setVmSelectionPolicy`

    - ### Methods inherited from class org.cloudbus.cloudsim.power.PowerVmAllocationPolicyAbstract

      `allocateHostForVm, allocateHostForVm, deallocateHostForVm, getHost, getHost, getVmTable, TryDVFSEnableHost`

    - ### Methods inherited from class org.cloudbus.cloudsim.VmAllocationPolicy

      `getHostList, setHostList`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PowerVmAllocationPolicyMigrationLocalRegression

          public PowerVmAllocationPolicyMigrationLocalRegression(List<? extends Host> hostList,
                                                         PowerVmSelectionPolicy vmSelectionPolicy,
                                                         double safetyParameter,
                                                         double schedulingInterval,
                                                         PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy,
                                                         double utilizationThreshold)

      Instantiates a new power vm allocation policy migration local regression.
      Parameters:
        `hostList` - the host list
        `vmSelectionPolicy` - the vm selection policy
        `schedulingInterval` - the scheduling interval
        `fallbackVmAllocationPolicy` - the fallback vm allocation policy
        `utilizationThreshold` - the utilization threshold

    - #### PowerVmAllocationPolicyMigrationLocalRegression

          public PowerVmAllocationPolicyMigrationLocalRegression(List<? extends Host> hostList,
                                                         PowerVmSelectionPolicy vmSelectionPolicy,
                                                         double safetyParameter,
                                                         double schedulingInterval,
                                                         PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)

      Instantiates a new power vm allocation policy migration local regression.
      Parameters:
        `hostList` - the host list
        `vmSelectionPolicy` - the vm selection policy
        `schedulingInterval` - the scheduling interval
        `fallbackVmAllocationPolicy` - the fallback vm allocation policy

  - ### Method Detail

    - #### isHostOverUtilized

          protected boolean isHostOverUtilized(PowerHost host)

      Checks if is host over utilized.
      Specified by:
        `isHostOverUtilized` in class `PowerVmAllocationPolicyMigrationAbstract`
      Parameters:
        `host` - the host
      Returns:
        true, if is host over utilized

    - #### getParameterEstimates

          protected double[] getParameterEstimates(double[] utilizationHistoryReversed)

      Gets the parameter estimates.
      Parameters:
        `utilizationHistoryReversed` - the utilization history reversed
      Returns:
        the parameter estimates

    - #### getMaximumVmMigrationTime

          protected double getMaximumVmMigrationTime(PowerHost host)

      Gets the maximum vm migration time.
      Parameters:
        `host` - the host
      Returns:
        the maximum vm migration time

    - #### setSchedulingInterval

          protected void setSchedulingInterval(double schedulingInterval)

      Sets the scheduling interval.
      Parameters:
        `schedulingInterval` - the new scheduling interval

    - #### getSchedulingInterval

          protected double getSchedulingInterval()

      Gets the scheduling interval.
      Returns:
        the scheduling interval

    - #### setFallbackVmAllocationPolicy

          public void setFallbackVmAllocationPolicy(PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)

      Sets the fallback vm allocation policy.
      Parameters:
        `fallbackVmAllocationPolicy` - the new fallback vm allocation policy

    - #### getFallbackVmAllocationPolicy

          public PowerVmAllocationPolicyMigrationAbstract getFallbackVmAllocationPolicy()

      Gets the fallback vm allocation policy.
      Returns:
        the fallback vm allocation policy

    - #### getSafetyParameter

          public double getSafetyParameter()

    - #### setSafetyParameter

          public void setSafetyParameter(double safetyParameter)

Copyright © 2013 The Cloud Computing and Distributed Systems (CLOUDS) Laboratory, The University of Melbourne. All Rights Reserved.