CloudSim v7.0.0 (or simply CloudSim7G) features a re-engineered and generalized internal architecture to facilitate the integration of multiple CloudSim extensions. As a positive side-effect, the majority of extensions packaged with CloudSim v6.0.0-alpha have been refactored, refined, optimized, and finally consolidated into a ``base layer'' upon which to build future CloudSim extensions.
What's new in CloudSim7G:
- Improved component reusability by establishing a collection of standard interfaces to specify a "guest" and "host" entities, as well as the selection policies to decide where/how to place them.
- Refactored most of the ContainerCloudSim module to reduce redundancies in the codebase.
- Rewritten most of the NetworkCloudSim module to provide elementary network capabilities.
- Introduced Nested virtualization, the ability to host Containers within Vms, or Vms within other Vms to explore more realistic scenarios.
What's new with respect to CloudSim7G pre-release:
- Introduced Virtualization overhead, a new parameter to simulate the additional overhead typical of nested virtualization scenarios.
- Introduced a small testsuite derived from select examples in
cloudsim-examples
, designed to detect software regressions for future updates. - Fixed several bugs introduced in the pre-release (i.e., NullPointers, rounding errors, unexpected behavioral variation compared to CloudSim6G's classes, etc.). A few fixes were made possible through community contributions -- thanks!.
Technical improvements:
- Removed more than 13000 lines of code (either redundant or deprecated).
- Improved the run-time performance of the core simulator by using more efficient data structures.
- Significantly reduced the amount of total heap memory allocated throughout a simulation.
- Removed Lombok to simplify the compilation process.
- Upgraded to jUnit 5.
**Feel free to open issues on GitHub (or Pull Requests, if you are eager to contribute to the project) regarding bugs, feature requests, etc. **
NOTE: CloudSim 7G introduces substantial changes to the codebase that may affect backward compatibility with previous extensions. To ease the transition, we preserved certain deprecated methods and classes, and made efforts to maintain existing names wherever possible (for instance, VmScheduler
should be called GuestScheduler
to be precise). However, the following key changes may require some adjustments: i) Deprecation of the ResCloudlet class (which is now fully incorporated in the Cloudlet class); ii) Removal of redundant classes (such as ContainerHost); and iii) Re-implementation of the CloudSimTag system using Enums (instead of relying on manually-declared static integers). With the aid of a modern IDE, upgrading your extension to CloudSim7G should take no more than 10-15 minutes for most cases.