public interface VmScaling

An interface to allow implementing horizontal and vertical scaling of Vms.

Author:Manoel Campos da Silva Filho



VmScaling NULL

An attribute that implements the Null Object Design Pattern for VmScaling objects.



Vm getVm()

Gets the Vm that this Load Balancer is linked to.


boolean requestUpScalingIfPredicateMatches(VmHostEventInfo evt)

Requests the Vm to be scaled up or down if it is over or underloaded, respectively. The scaling request will be sent to the DatacenterBroker only if the under or overload condition is met, that depends of the implementation of the scaling mechanisms.

The Vm to which this scaling object is related to, creates an UpdateProcessingListener that will call this method to check if it time to perform an down or up scaling, every time the Vm processing is updated.

  • evt – event information, including the current simulation time and the VM to be scaled

true if the Vm is over or underloaded and up or down scaling request was sent to the broker, false otherwise


VmScaling setVm(Vm vm)

Sets a Vm to this Load Balancer. The broker will call this Load Balancer in order to balance load when its Vm is over utilized.

When the VmScaling is assigned to a Vm, the Vm sets itself to the VmScaling object, creating an association between the two objects.

  • vm – the Vm to set