| Age | Commit message (Collapse) | Author |
|
This change re-enables support for VM usage metrics by adding an adapter
for SimResourceConsumer instances that can export the consumer speed.
|
|
This change adds support for dynamically changing the capacity of
resources and propagating this change to consumers.
|
|
This change removes the generic resource constraint (e.g., SimResource)
and replaces it by a simple capacity property. In the future, users
should handle the resource properties on a higher level.
This change simplifies compositions of consumers and providers by not
requiring a translation from resource to capacity.
|
|
This change changes the consumer and context interfaces to expose the
provider capacity and remaining work via the context instance as opposed
to only via the callback. This simplifies aggregation of resources.
|
|
This change adds an initial set of benchmarks for the resource
consumption framework in order to measure the effect of changes on the
performance of the simulator.
|
|
This change re-designs the SimResourceConsumer interface to support in
the future capacity negotiation. This basically means that the consumer
will be informed directly when not enough capacity is available, instead
of after the deadline specified by the consumer.
|
|
This change adds the initial implementation of OpenDC Serverless to the
main repository, which is based on Soufiane Jounaid's work. This commit
introduces the main interfaces into the repository. Later commits will
introduce the other features that Soufiane has implemented previously in
OpenDC.
|
|
This change updates the Github Actions workflow configuration to
generate test reports for the simulator CI builds.
|
|
This change updates the dependencies for the OpenDC simulator.
|
|
This change adds support for aggregating code coverage results from the
different modules.
|
|
This change implements the CPU energy model with p-states from iCanCloud/E-mc2:
- Only pushed a portion of the code for discussion as not sure if the idea is
on track.
- Inline comments have been added, and formal documents will follow once the
model is finalized.
- The p-state power consumptions are currently hard-coded in a companion
object, which should be improved in the next PR(s).
**Breaking Changes**
- CpuPowerModel: directly interact with the machine it is measuring.
- SimBareMetalMachine: expose the speeds of its CPU cores and its clock
instant.
|
|
This change moves the hypervisor implementations to the
opendc-simulator-resources module and makes them generic to the resource
type that is being used (e.g., CPU, disk or networking).
|
|
This change fixes a possible memory leakage issue in TimerScheduler when
a large number of timers was scheduled for the same timestamp.
|
|
This change adds a generic framework for modeling resource consumptions and
adapts opendc-simulator-compute to model machines and VMs on top of
this framework.
This framework anticipates the addition of additional resource types
such as memory, disk and network to the OpenDC codebase.
|
|
|
|
|
|
|
|
|
|
This change removes the unused StateFlow from the utils module. It has
been replaced by the proper implementation in the kotlinx-coroutines
library.
|
|
This change removes the opendc-core module. This module was an artifact
of the old codebase and remained mostly unused. This change removes all
usages of the module and if necessary introduces replacement classes.
|
|
|
|
This change adds the ability to define labels and meta-data for
resources. This can be used in the future to identify servers and pass
data between client and server.
|
|
This change adds more methods for controlling the lifecycle of Server instances.
|
|
This change removes the usage of bare-metal provisioning from the OpenDC
Compute module. This significantly simplifies the experiment setup.
|
|
This change moves the bare-metal provisioning packages outside the
compute module since these modules represent different layers in the
ecosystem and should not be mixed.
|
|
This change introduces the ComputeService interface (previously
VirtProvisioningService) and provides a central implementation in
opendc-compute-service.
Previously, the implementation of this interface was bound to the
simulator package, which meant that independent business logic could not
be re-used without importing the simulator code.
|
|
This change extracts the API for the OpenDC Compute service into a separate
module to establish a clearer boundary between the interface meant for
consumers and interfaces meant for the the serve implementation.
|
|
This change converts the Server data class which can be used as a
stateful object to control an instance running in the cloud.
|
|
This change increases the logging level from INFO to WARN in order to
reduce the amount of messages printed to the console during tests.
|
|
This change refactors the OpenDC Compute module so that the
VirtProvisioningService is now responsible for managing the lifecycle of
Server objects as opposed to the VirtDriver and BareMetalDriver
previously.
|
|
This change removes the use of ServiceRegistry in the OpenDC compute
module. It was not actually being used by any of the code and we are
moving to another interface in the future.
|
|
This change separates the cloud compute layer in OpenDC (e.g., Server)
from the bare-metal layer (e.g., Node), such that Node and
BareMetalDriver are unaware of the existence of Server and co.
|
|
This change removes the SimWorkloadImage implementation and changes
Image to a data class without workload. Simulation workloads should now
be pased via image metadata as the image storage should be unaware of
any simulation details.
|
|
This commit implements the energy models that are present in CloudSim:
1. Constant
2. Linear
3. Cubic
4. Square root
5. Interpolation based on data.
|
|
This change uses the Java Platform functionality from Gradle to enable
shared dependency constraints across modules.
|
|
|
|
|
|
This change fixes an issue with the harness where an experiment would be
reported finished while its scenarios and trials were still running.
This causes issues with Gradle reporting the experiments.
|
|
This change removes unnecessary JUnit dependencies from the
opendc-harness module. They are not used nor should they be used by the
harness.
|
|
This change updates the Gradle configuration to utilize version
constraints to force the same dependency version across modules.
|
|
This change moves the version of the dependencies from buildSrc to
gradle.properties to prevent recompilation when changing dependency
versions.
|
|
This change extracts the configuration for test from the Kotlin library
conventions.
|
|
|
|
This commit extracts the configuration for Jacoco into a separate
convention file.
|
|
This change removes unnecessary dependencies on JUnit Platform launcher
from the repository. Previously, the launcher was used to bootstrap
tests for Gradle when it did not natively support JUnit Platform.
Gradle now has native support for JUnit Platform, so the dependency is
not needed anymore.
|
|
|
|
This change updates the ktlint-gradle dependencies to version 10.0.0,
which resolves the deprecation warnings that were previously emitted by
the plugin.
|
|
|
|
|
|
|