hu.mta.sztaki.lpds.cloud.simulator.iaas.pmscheduling
Class MultiPMController

java.lang.Object
  extended by hu.mta.sztaki.lpds.cloud.simulator.iaas.pmscheduling.PhysicalMachineController
      extended by hu.mta.sztaki.lpds.cloud.simulator.iaas.pmscheduling.SchedulingDependentMachines
          extended by hu.mta.sztaki.lpds.cloud.simulator.iaas.pmscheduling.MultiPMController

public class MultiPMController
extends SchedulingDependentMachines

A reactive PM controller that increases/decreases the powered on pm set on demands of the vm scheduler. This controller implementation is always changing the machine set size with the amount that matches the size of the VM queue of the VM scheduler. This might cause unrealistic PM number increases which would ruin power lines in real life. The logic of this controller is very similar to the one in SchedulingDependentMachines, the only difference is how it grows the number of machines needed for the current operation of the infrastructure. WARNING: this is an experimental class, it is not widely tested, handle with care

Author:
"Gabor Kecskemeti, Laboratory of Parallel and Distributed Systems, MTA SZTAKI (c) 2015"

Field Summary
private  ArrayList<PhysicalMachine> currentlyStartingPMs
          the list of machines that are currently turned on by this controller.
 
Fields inherited from class hu.mta.sztaki.lpds.cloud.simulator.iaas.pmscheduling.PhysicalMachineController
parent, queueingEvent
 
Constructor Summary
MultiPMController(IaaSService parent)
          Constructs the scheduler and passes the parent IaaSService to the superclass.
 
Method Summary
protected  Scheduler.QueueingEvent getQueueingEvent()
          Implements a reaction to the starting of the VM queue that is capable to turn on multiple PMs in parallel.
protected  void turnOnAMachine()
          Forwards the single PM turnon request to multi PM turnon.
protected  void turnOnSomeMachines()
          Turns on as many PMs as many required to fulfill the total resource requirements of the queued VMs at the VM scheduler of the parent IaasService
 
Methods inherited from class hu.mta.sztaki.lpds.cloud.simulator.iaas.pmscheduling.SchedulingDependentMachines
getHostRegEvent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

currentlyStartingPMs

private final ArrayList<PhysicalMachine> currentlyStartingPMs
the list of machines that are currently turned on by this controller.

Constructor Detail

MultiPMController

public MultiPMController(IaaSService parent)
Constructs the scheduler and passes the parent IaaSService to the superclass.

Parameters:
parent - the IaaSService to serve
Method Detail

getQueueingEvent

protected Scheduler.QueueingEvent getQueueingEvent()
Implements a reaction to the starting of the VM queue that is capable to turn on multiple PMs in parallel.

Overrides:
getQueueingEvent in class SchedulingDependentMachines
Returns:
the object to handle the VM scheduling related events

turnOnAMachine

protected void turnOnAMachine()
Forwards the single PM turnon request to multi PM turnon.

Overrides:
turnOnAMachine in class SchedulingDependentMachines

turnOnSomeMachines

protected void turnOnSomeMachines()
Turns on as many PMs as many required to fulfill the total resource requirements of the queued VMs at the VM scheduler of the parent IaasService



Copyright © 2012–2015 University of Innsbruck & MTA SZTAKI. All rights reserved.