Releases: cloudsimplus/cloudsimplus
v3.0.0 - Powerful logging features using SLF4J and Logback Libraries. Totally working Network Module
- Defines types and colors for log messages and enables filtering the level of messages to print. The image below shows how easy is to check things that may be wrong in your simulation (#24).
And for instance, if you want to see just messages from warning level, it's as simple as calling
Log.setLevel(ch.qos.logback.classic.Level.WARN);
- Includes all fixes in the Network Module from version 2.4.0.
v2.4.0 - Totally refactored Network Module
v2.3.1 - BugFix and Small Improvements
Updates #130
- Postpone DatacenterBroker shutdown to the end of the simulation when a termination time is set,
instead of as soon as all cloudlets finish. This way, the broker waits for new Cloudlets and VMs submitted during simulation runtime, even if the broker is idle. - Updates DatacenterBrokerSimple to request VM destroy during shutdown. In situations such as when a simulation termination time is set, the broker was kept alive to wait for new Cloudlets and VMs. However, this was causing VM destruction to be ignored when the broker was shutdown.
- Improves information printed by DatacenterBroker.
v2.3.0 - Enables simulation to keep running, waiting for events such as the dynamic arrival of Cloudlets and VMs
v2.2.2 - Cleanup Release
- General cleanup to remove unused and redundant code.
- General code review and refactoring.
v2.2.0 - Simplifies the way to use PowerModel
The PowerSupply
was just delegating everything to PowerModel
.
After refactoring the latter one to provide a better class hierarchy, remove code duplication and fix bugs (#127), PowerSupply
was merged into the PowerModel
and the former removed.
Now, the way to use PowerModel
is as before the release 2.0.0, but with all the benefits of using regular classes to implement power-aware simulations, namely DatacenterSimple
, HostSimple
and VmSimple
.
You just need to call Host's setPowerModel(PowerModel powerModel)
method to enable power-aware simulations.
v2.1.0 - Redesigns PowerModel classes and provides the functional PowerModelSimple
- Provides a functional implementation of
PowerModel
classes, enabling to pass aFunction
as a parameter to the constructor. Such aFunction
defines how the power consumption increases along the time. - Introduces the
PowerModelSimple
, enabling the developer to define the power consumption increment as aFunction
. This way, it doesn't require the creation of a new class. - Removes all code duplication between
PowerModel
classes.
v2.0.0 - Integrating power-aware features into regular simulation objects, enabling simulations that are both power- and network-aware
INTRODUCTION
Enables power-aware simulations using regular classes such asDatacenterSimple
, HostSimple
and VmSimple
. This way, it automatically allows creating simulations that are both network- and power-aware by using the network versions of such classes.
Any Host
now has a PowerSupply
attribute that allows to get power consumption data from. To enable collecting such data, it's is required to set a PowerModel
object by calling host.getPowerSupply().setPowerModel(powerModel)
. The only difference from previous versions is that the PowerModel
is defined inside the PowerSupply
instead of the Host
.
This way, if you don't need power-aware simulations, you need to do nothing because that is the default behaviour.
There are some examples such as the PowerExample and the MigrationExample2_PowerUsage.
More details are presented below.
VmUtilizationHistory
Adds the VmUtilizationHistory
class to store resource utilization history by a given Vm
. This way, all Vm
implementations have a UtilizationHistory
attribute.
PowerVm
PowerVm
class was removed and its methods were moved to a new VmUtilizationHistory class.
The Vm now has an attribute VmUtilizationHistory
that enables collecting CPU utilization data.
The VmUtilizationHistory.enabled
is set by default to false. This way, the user have to manually enable the history to start collecting utilization data. It was disabled by default to reduce memory usage.
PowerSupply
Adds the PowerSupply
interface to concentrate all power consumption data and operations, enabling any Host
to get such an information. The PowerSupply
includes the PowerModel
that was previously inside the PowerHost
class.
PowerHost
PowerHost
class removed and its methods merged into Host. A PowerSupply
interface was introduced to group power consumption data (including a PowerModel
). This way, any Host
can extract power consumption data. It's just required a PowerModel to be set in the PowerSupply
.
PowerHostUtilizationHistory and HostDynamicWorkloadSimple
PowerHostUtilizationHistory
and HostDynamicWorkloadSimple
class were removed and their code merged into the HostSimple
class.
The Host's getUtilizationHistory
method gets the CPU utilization history from its VMs. The Host doesn't store any data. The VM utilization history must be enabled to allow getting such data, by calling vm.getUtilizationHistory().enable()
.
VmAllocationPolicy
Refactors VmAllocationPolicy
implementations, mainly the VmAllocationPolicyAbstract
and VmAllocationPolicySimple
.
Changed the method Host findHostForVm(final Vm vm)
to Optional<Host> findHostForVm(final Vm vm)
, making it return an Optional
to explicitly indicate that a suitable Host
may not be found for a given VM.
The method was defined as abstract in the VmAllocationPolicyAbstract
and it's the single one initially required to be implemented by subclasses of VmAllocationPolicyAbstract
.
Removes PowerVmAllocationPolicySimple
because it was doing nothing that other policies weren't doing. Introduces the VmAllocationPolicyFirstFit
.
Renames the package org.cloudbus.cloudsim.allocationpolicies.power
to org.cloudbus.cloudsim.allocationpolicies.migration
. Such allocation policies enable VM migration and can be used now for any kind of simulation, not only for power-aware ones. All internal classes and interfaces were renamed, removing the prefix Power
.
NOTICE
Check release 2.2.0 for important updates about power-aware simulations.
v1.3.3 - Removes Confusing Examples
Removes all the examples that were available at package org.cloudbus.cloudsim.examples.power
Those simulations aren't in fact examples. They were clearly used just to publish results for the paper Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers.
Since the code lacks organization and results aren't structured and clear, such simulations just confuse instead of help. A more detailed discussion about the issues in these simulations is available here.
v1.3.2 - Easier way to load files for Network Topologies, Workloads, Utilization Models, etc
Updates the ResourceLoader
class
Enables loading a resource from the resource directory, regardless the simulation is running directly from a compiled class or from a jar file.
Makes it easier to get an instance of classes that require reading a file,
The classes BriteNetworkTopology
, WorkloadFileReader
, UtilizationModelPlanetLab
and SlaContract
now have a simplified getInstance(String path)
method that just requires the relative path to the file to be loaded. If such file is inside the application's resource directory, it will be found. If it's anywhere else, just provide an absolute file path.