PowerVmAllocationPolicyMigrationMedianAbsoluteDeviation (cloudsim 3.1-SNAPSHOT API)

org.cloudbus.cloudsim.power

## Class PowerVmAllocationPolicyMigrationMedianAbsoluteDeviation

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

-     public class PowerVmAllocationPolicyMigrationMedianAbsoluteDeviation
      extends PowerVmAllocationPolicyMigrationAbstract

  The Median Absolute Deviation (MAD) 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
    `PowerVmAllocationPolicyMigrationMedianAbsoluteDeviation(List<? extends Host> hostList, PowerVmSelectionPolicy vmSelectionPolicy, double safetyParameter, PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)` Instantiates a new power vm allocation policy migration mad.

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PowerVmAllocationPolicyMigrationAbstract` | `getFallbackVmAllocationPolicy()` Gets the fallback vm allocation policy.
    `protected double` | `getHostUtilizationMad(PowerHostUtilizationHistory host)` Gets the host utilization mad.
    `protected double` | `getSafetyParameter()` Gets the safety parameter.
    `protected boolean` | `isHostOverUtilized(PowerHost host)` Checks if is host over utilized.
    `void` | `setFallbackVmAllocationPolicy(PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)` Sets the fallback vm allocation policy.
    `protected void` | `setSafetyParameter(double safetyParameter)` Sets the safety parameter.

    - ### 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

    - #### PowerVmAllocationPolicyMigrationMedianAbsoluteDeviation

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

      Instantiates a new power vm allocation policy migration mad.
      Parameters:
        `hostList` - the host list
        `vmSelectionPolicy` - the vm selection policy
        `safetyParameter` - the safety parameter
        `utilizationThreshold` - the utilization threshold

    - #### PowerVmAllocationPolicyMigrationMedianAbsoluteDeviation

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

      Instantiates a new power vm allocation policy migration mad.
      Parameters:
        `hostList` - the host list
        `vmSelectionPolicy` - the vm selection policy
        `safetyParameter` - the safety parameter

  - ### 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

    - #### getHostUtilizationMad

          protected double getHostUtilizationMad(PowerHostUtilizationHistory host)
                                          throws IllegalArgumentException

      Gets the host utilization mad.
      Parameters:
        `host` - the host
      Returns:
        the host utilization mad
      Throws:
        `IllegalArgumentException`

    - #### setSafetyParameter

          protected void setSafetyParameter(double safetyParameter)

      Sets the safety parameter.
      Parameters:
        `safetyParameter` - the new safety parameter

    - #### getSafetyParameter

          protected double getSafetyParameter()

      Gets the safety parameter.
      Returns:
        the safety parameter

    - #### 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

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