cloudsimplus / cloudsimplus

State-of-the-art Framework 🏗 for Cloud Computing ⛅️ Simulation: a modern, full-featured, easier-to-use, highly extensible 🧩, faster 🚀 and more accurate ☕️ Java 17+ tool for cloud computing research 🎓. Examples: https://github.com/cloudsimplus/cloudsimplus-examples

Home Page:https://cloudsimplus.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

manoelcampos opened this issue · comments

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

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.

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.

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