Hello Manoel Campos,
really using the Cloudlet.java source code comments and CloudSim API we cannot
to assert so much about the meaning of input/output files from Cloudlets. But, I gave a little look within CloudSim classes and what I have found was:
- input/output file sizes are setted in bytes, like described below in Cloudlet.java:
* @param cloudletFileSize the file size (in byte) of this cloudlet
* <tt>BEFORE</tt> submitting to a PowerDatacenter
* @param cloudletOutputSize the file size (in byte) of this cloudlet
* <tt>AFTER</tt> finish executing by a PowerDatacenter
- these items are handled by some classes of simulator such as CloudletSchedulers (Space and Time Shared), Datacenter, PowerDatacenter... it looks like input file size is used to calculate network delays between components to emulate its upload to VMs and its migration.
- What about output file size not grow, I not sure about this point, but I think that is necessary to perform some kind of operation adding data to cloudlet result to its output file size can grow up. An possible idea for this goal is implement one extended CloudScheduler (from another one implemented like CloudSchedulerSpace or Time Shared) to handle the cloud application business rule, this way you can stablish conditions where output file size will be increased.
- I saw on NetworkCloudletSpaceSharedScheduler some codes that handle file transfer and copies adding length value to cloudlets. Like this part (cloudletSubmit method)
// use the current capacity to estimate the extra amount of
// time to file transferring. It must be added to the cloudlet length
double extraSize = capacity * fileTransferTime;
long length = cloudlet.getCloudletLength();
length += extraSize;
cloudlet.setCloudletLength(length);
return cloudlet.getCloudletLength() / capacity;
Maybe could be an idea to create new rules programming your own CloudletScheduler as I said before. I have made a sample code trying to help with this question. Maybe this isn't the best way to do, but is a start form.