Skip to content
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

manoelcampos opened this issue Sep 1, 2016 · 0 comments


Copy link

@manoelcampos manoelcampos commented Sep 1, 2016


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

@manoelcampos manoelcampos changed the title DatacenterBroker interface has to provide a method to define the policy used to select a VM for submitted cloudlets 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
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.