summaryrefslogtreecommitdiff
path: root/simulator/opendc-experiments
AgeCommit message (Collapse)Author
2021-03-27compute: Migrate compute service simulator to OpenTelemetryFabian Mastenbroek
This change updates the compute service simulator to use OpenTelemetry for reporting metrics of the (simulated) hosts as opposed to using custom event flows. This approach is more generic, flexible and possibly offers better performance as we can collect metrics of all services in a single sweep, as opposed to listening to several services and each invoking the handlers.
2021-03-26compute: Integrate OpenTelemetry Metrics in OpenDC WorkflowFabian Mastenbroek
This change integrates the OpenTelemetry Metrics API in the OpenDC Workflow Service implementation. This replaces the old infrastructure for gathering metrics.
2021-03-26compute: Integrate OpenTelemetry Metrics in OpenDC ComputeFabian Mastenbroek
This change integrates the OpenTelemetry Metrics API in the OpenDC Compute Service implementation. This replaces the old infrastructure for gathering metrics.
2021-03-26compute: Remove dependency on event tracerFabian Mastenbroek
This change removes the dependency on the event tracer in `opendc-trace`, since we are in the process of migrating OpenDC to use OpenTelemetry for distributed tracing and metrics.
2021-03-26compute: Hide internals of compute service implementationFabian Mastenbroek
This change changes the compute service and users of the compute service to not rely on the internals of `ComputeServiceImpl` and instead use its public API.
2021-03-26compute: Add test suite for ComputeServiceFabian Mastenbroek
This change adds a test suite for the OpenDC compute service.
2021-03-24simulator: Move power models to simulator moduleFabian Mastenbroek
This change moves the power models from the `opendc-compute-simulator` to the `opendc-simulator-compute` module, since it better fits the scope of the models and allows them to be re-used for other purposes.
2021-03-22simulator: Remove generic resource constraint from resource modelFabian Mastenbroek
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.
2021-03-22simulator: Expose capacity and remaining work outside consumer callbackFabian Mastenbroek
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.
2021-03-22simulator: Re-design consumer interface to support capacity negotiationFabian Mastenbroek
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.
2021-03-17simulator: Make hypervisors generic for the resource typeFabian Mastenbroek
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).
2021-03-09workflow: Split workflow module in API and service moduleFabian Mastenbroek
2021-03-09compute: Move implementation of Flavor into service moduleFabian Mastenbroek
2021-03-09compute: Model storage of VM imagesFabian Mastenbroek
2021-03-09core: Remove OpenDC core moduleFabian Mastenbroek
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.
2021-03-08compute: Remove use of bare-metal provisioning from compute moduleFabian Mastenbroek
This change removes the usage of bare-metal provisioning from the OpenDC Compute module. This significantly simplifies the experiment setup.
2021-03-07compute: Move bare-metal provisioning in separate moduleFabian Mastenbroek
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.
2021-03-07compute: Move ComputeService implementation in service moduleFabian Mastenbroek
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.
2021-03-07compute: Extract API from compute serviceFabian Mastenbroek
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.
2021-03-07compute: Convert Server to stateful interfaceFabian Mastenbroek
This change converts the Server data class which can be used as a stateful object to control an instance running in the cloud.
2021-03-07compute: Make VirtProvisoningService responsible for Server lifecycleFabian Mastenbroek
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.
2021-03-07compute: Separate cloud compute layer from bare-metal layerFabian Mastenbroek
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.
2021-03-07compute: Pass simulation workload via image metadataFabian Mastenbroek
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.
2021-02-23Use Java Platform for shared dependency constraintsFabian Mastenbroek
This change uses the Java Platform functionality from Gradle to enable shared dependency constraints across modules.
2021-02-23exp: Add support for running Capelin experiments in IntelliJFabian Mastenbroek
2021-02-23exp: Support running SC18 experiment from within IntelliJFabian Mastenbroek
2021-02-23Utilize version constraints for shared versionsFabian Mastenbroek
This change updates the Gradle configuration to utilize version constraints to force the same dependency version across modules.
2021-02-23Move dependency versions to gradle.propertiesFabian Mastenbroek
This change moves the version of the dependencies from buildSrc to gradle.properties to prevent recompilation when changing dependency versions.
2021-02-23Extract testing conventions from Kotlin conventionsFabian Mastenbroek
This change extracts the configuration for test from the Kotlin library conventions.
2021-02-23Remove unnecessary dependencies on JUnit Platform LauncherFabian Mastenbroek
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.
2021-01-12Refactor SC18 experiments to use new experiment harnessFabian Mastenbroek
2021-01-11Add support for hypervisor selectionFabian Mastenbroek
This change allows users to select the hypervisor scheduler to use when deploying hypervisors onto bare-metal machines.
2021-01-11Convert to pull-based workload modelFabian Mastenbroek
This change converts the low-level workload model to be pull-based. This reduces the overhead that we experienced with our previous co-routine based approach.
2021-01-07Merge pull request #69 from atlarge-research/refactor/workflows-v1Fabian Mastenbroek
Refactor workflow service to schedule tasks onto VMs
2021-01-07Refactor workflow service to schedule tasks onto VMsFabian Mastenbroek
This change updates the workflow service to delegate the resource scheduling logic to the virtualized resource provisioner.
2021-01-07Migrate OpenDC SC20 experiments to experiment harnessFabian Mastenbroek
This change refactors the SC20 experiments in OpenDC to use the standalone experiment harness as opposed to its built-in ad-hoc experiment framework.
2021-01-03Adapt workflow engine to use event tracerFabian Mastenbroek
2021-01-03Integrate event tracer in SimVirtProvisioningServiceFabian Mastenbroek
2020-11-01Properly parse provisioned memory from Bitbrains traceFabian Mastenbroek
This change fixes an issue where we interpret the provisioned memory in the Bitbrains trace as MB as opposed to the correct KB.
2020-10-05Address compilation warningsFabian Mastenbroek
2020-10-05Move power models outside opendc-coreFabian Mastenbroek
2020-10-05Move failure models to separate moduleFabian Mastenbroek
2020-10-04Extract simulation-related code from OpenDC Compute (core)Fabian Mastenbroek
This change splits the opendc-compute module into two modules: 1. opendc-compute-core The interfaces and APIs that represent a IaaS platform. 2. opendc-compute-simulator The implementation of these interfaces using simulation components from opendc-simulator-compute.
2020-10-04Reimplement performance interference in opendc-simulator-computeFabian Mastenbroek
This change reimplements the performance interference model originally implemented for the SimpleVirtDriver class, for SimHypervisor.
2020-10-04Migrate codebase to opendc-simulator-computeFabian Mastenbroek
This change updates the remainder of the codebase to use the opendc-simulator-compute module for the simulation of workloads.
2020-10-02Add opendc-simulator-compute moduleFabian Mastenbroek
This change adds an opendc-simulator-compute module which contains interfaces related to simulating compute workloads. For future changes, we intend to decouple the simulation part from the opendc-compute module.
2020-10-01Add explicit API visibilityFabian Mastenbroek
This change adds explicit visibility modifiers to the public interfaces and enables Kotlin 1.4's explicit API mode.
2020-10-01Migrate to org.opendc namespaceFabian Mastenbroek
This change moves the OpenDC simulator codebase to the org.opendc namespace of which we control the domain. Previously, we used the com.atlarge package of which we did not control the domain, which might lead to difficulties in the future.
2020-10-01Move OpenDC modules into simulator rootFabian Mastenbroek
This change moves the OpenDC modules previously living in the simulator/opendc directory to the simulator directory itself given that we do not make a distinction between OpenDC and odcsim anymore.