New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DatacenterBroker interface has to provide a method to define the policy used to select a VM to run each Cloudlet #25

Closed
manoelcampos opened this Issue Sep 1, 2016 · 0 comments

Comments

Projects
None yet
1 participant
@manoelcampos
Owner

manoelcampos commented Sep 1, 2016

FEATURE

The DatacenterBroker interface is not well defined in order to enable implementing classes to define how a VM is selected to place each submitted Cloudlet. This is a problem came from CloudSim, that not even has a DatacenterBroker interface.

If the goal is to allow third-party developers to implement new DatacenterBrokers, the framework has to provide the necessary base interfaces and classes to allow that. Currently such extensibility is not being allowed, without changing core framework classes.

The protected createCloudletsInVms() method in DatacenterBrokerSimple class always select the first VM to each Cloudlet that was not manually bound to a given VM.

Detailed information about how the feature should work

DatacenterBroker interface has to provide one method to be implemented in order to specify the policy used to select a VM for a given Cloudlet. The DatacenterBrokerSimple.createCloudletsInVms() has to be refactored in order to move the VM selection code to that proposed method.

An example scenario where this feature should be used

This feature will allow implementing simulations that can give priorities to cloudlets to be assigned to VMs, according to the policy implemented by a custom DatacenterBroker. Different policies can asses even characteristics of VM and Cloudlets when assigning a Cloudlet to a VM, trying the best mapping possible. A Knapsack Problem approach could be implemented by a DatacenterBroker in order to pack the maximum number of cloudlets into the best VM, or assess mappings that will reduce overall task completion time for all Cloudlets, reduce the mean task completion the among Cloudlets, select VMs where the Cloudlet resource usage would reach a certain level (in cases where the cloudlet has dynamic UtilizationModel's), or several other scenarios.

A brief explanation of why you think this feature is useful

It will enable real extensibility to third-party developers to create custom implementations of a DatacenterBroker.

Examples Available

CloudletToVmMappingBestFit.java

@manoelcampos manoelcampos changed the title from DatacenterBroker interface has to provide a method to define the policy used to select a VM for submitted cloudlets to DatacenterBroker interface has to provide a method to define the policy used to select a VM to run each Cloudlet Sep 1, 2016

@manoelcampos manoelcampos self-assigned this Sep 4, 2016

@manoelcampos manoelcampos added this to the CloudSim Plus 1.0 milestone Dec 20, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment