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

Allow submission of VMs and Cloudlets to an already existing DatacenterBroker in runtime #43

Closed
manoelcampos opened this Issue Dec 11, 2016 · 3 comments

Comments

Projects
None yet
2 participants
@manoelcampos
Owner

manoelcampos commented Dec 11, 2016

FEATURE:

Such a feature will allow the creation of new VMs and Cloudlets after the simulation has already started, without requiring the creation of a new DatacenterBroker. The requirement of creating a new broker to enable dynamic creation of VMs and Cloudlets is not obvious and causes confusion since when calling the submitVmList and submitCloudletList methods from DatacenterBroker has no effect after the simulation has started.

Detailed information about how the feature should work

The submitVmList and submitCloudletList methods from DatacenterBroker implementations just works before the simulation has started. All the process to request a Datacenter to create VMs and Cloudlets is performed just in the startEntity method (inherited from the SimEntity), that is just executed once when the simulation starts.

When VMs are submitted, the DatacenterBroker has to check if it was already started and then immediately request the creation of such VMs. When Cloudlets are submitted after the DatacenterBroker has started, the broker has to check if there are VMs waiting to be created. If so, the new submitted cloudlets have to wait in the queue. If all VMs were already created, the request to create the new cloudlets has to be sent immediately.

An example scenario where this feature should be used

This will allow creation of VMs and Cloudlets dynamically (during simulation execution) for the same cloud customers (DatacenterBroker), allowing simulation of dynamic workload (cloudlets arriving dynamically) and the on-demand provisioning of new VMs.

A brief explanation of why you think this feature is useful

It is a long waited feature and will make the DatacenterBroker submission methods to work as expected during simulation execution.

Included Examples

Related Issues

@manoelcampos manoelcampos self-assigned this Dec 11, 2016

@manoelcampos manoelcampos changed the title from Allow submission of VMs and Cloudlets to a DatacenterBroker during simulation execution to Allow submission of VMs and Cloudlets to an already existing DatacenterBroker during simulation execution Dec 11, 2016

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

@rasoulabbasi20n

This comment has been minimized.

Show comment
Hide comment
@rasoulabbasi20n

rasoulabbasi20n Jan 18, 2018

Hi, I have a question about this feature. Does it mean that we don't have to know about Vms count and Vm creation? I mean the code you placed here for example, it still knows about Vm creation and Vms count. I think it's the responsibility of the host to create Vm in itself.
At first, Broker must decide which Datacenter must handle the cloudlet, then Datacenter decides which host must handle the cloudlet and at last, host knows how to handle cloudlet and create a Vm in response.

rasoulabbasi20n commented Jan 18, 2018

Hi, I have a question about this feature. Does it mean that we don't have to know about Vms count and Vm creation? I mean the code you placed here for example, it still knows about Vm creation and Vms count. I think it's the responsibility of the host to create Vm in itself.
At first, Broker must decide which Datacenter must handle the cloudlet, then Datacenter decides which host must handle the cloudlet and at last, host knows how to handle cloudlet and create a Vm in response.

@manoelcampos

This comment has been minimized.

Show comment
Hide comment
@manoelcampos

manoelcampos Jan 18, 2018

Owner

You don't need to know in advance the total number of VMs to be created. You can create VMs at any time during simulation execution. That is how a real cloud provider works: customers can create VMs at any time they want.

The provided example really knows the amount of VMs to be created, but it's just an example. You could randomly define that amount or read it from an external file (such as .csv or some other file format).

The Host is the one that creates VMs in the end. Nothing has changed here. What the feature enables you to do is to dynamically request the creation of VMs during simulation runtime. In CloudSim, to accomplish that, you have to dynamically create a broker to submit VMs to. Considering that a broker represents a customer, you aren't able to submit new VMs to the same customer. In CloudSim Plus this is straightforward.

The VM creation process is not changed. It works the exact same way. You request to the broker, the broker finds a Datacenter, the Datacenter uses a VmAllocationPolicy to find a suitable Host. Finally, the Host creates the requested VM.

If you have further questions, please subscribe to the Google Group.

Owner

manoelcampos commented Jan 18, 2018

You don't need to know in advance the total number of VMs to be created. You can create VMs at any time during simulation execution. That is how a real cloud provider works: customers can create VMs at any time they want.

The provided example really knows the amount of VMs to be created, but it's just an example. You could randomly define that amount or read it from an external file (such as .csv or some other file format).

The Host is the one that creates VMs in the end. Nothing has changed here. What the feature enables you to do is to dynamically request the creation of VMs during simulation runtime. In CloudSim, to accomplish that, you have to dynamically create a broker to submit VMs to. Considering that a broker represents a customer, you aren't able to submit new VMs to the same customer. In CloudSim Plus this is straightforward.

The VM creation process is not changed. It works the exact same way. You request to the broker, the broker finds a Datacenter, the Datacenter uses a VmAllocationPolicy to find a suitable Host. Finally, the Host creates the requested VM.

If you have further questions, please subscribe to the Google Group.

@rasoulabbasi20n

This comment has been minimized.

Show comment
Hide comment
@rasoulabbasi20n

rasoulabbasi20n Jan 19, 2018

Thank you, I didn't know about google group.

rasoulabbasi20n commented Jan 19, 2018

Thank you, I didn't know about google group.

@manoelcampos manoelcampos changed the title from Allow submission of VMs and Cloudlets to an already existing DatacenterBroker during simulation execution to Allow runtime submission of VMs and Cloudlets to an already existing DatacenterBroker during simulation execution Jul 18, 2018

@manoelcampos manoelcampos changed the title from Allow runtime submission of VMs and Cloudlets to an already existing DatacenterBroker during simulation execution to Allow submission of VMs and Cloudlets to an already existing DatacenterBroker during simulation execution Jul 18, 2018

@manoelcampos manoelcampos changed the title from Allow submission of VMs and Cloudlets to an already existing DatacenterBroker during simulation execution to Allow submission of VMs and Cloudlets to an already existing DatacenterBroker in runtime Jul 18, 2018

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