summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-18fix(simulator): Flush results before accessing countersFabian Mastenbroek
This change updates the simulator implementation to flush the active progress when accessing the hypervisor counters. Previously, if the counters were accessed, while the mux or consumer was in progress, its counter values were not accurate.
2022-02-18fix(telemetry): Fix reporting of CPU timeFabian Mastenbroek
This change fixes an issue with the CPU time aggregation for VMs in the ComputeMetricAggregator, leading to incorrect values.
2022-02-18bug(trace): Adjust CPU capacity to number of vCPUsFabian Mastenbroek
This change fixes an issue where the number of vCPUs was not taken into account when converting from CPU Usage percentage to MHz.
2022-02-18merge: Address technical debt in codebaseFabian Mastenbroek
This pull request removes some of the existing technical debt in the OpenDC codebase. Close #51 ## Implementation Notes :hammer_and_pick: * Add Pacer to pace scheduling cycles. * Rename utils module to common module * Optimize TimerScheduler * Remove opendc-platform module * Disallow duplicate UIDs for SimHost ## Breaking API Changes :warning: * TimerScheduler does not implement `AutoCloseable` anymore.
2022-02-18fix(compute): Disallow duplicate UIDs for SimHostFabian Mastenbroek
This change fixes an issue with the ComputeServiceHelper where it allowed users to register multiple SimHost objects with the same UID. See this issue for more information: https://github.com/atlarge-research/opendc/issues/51
2022-02-18build: Remove opendc-platform moduleFabian Mastenbroek
This change removes the opendc-platform module from the project. This module represented a Java platform which was previously used for sharing a set of dependency versions between subprojects. However, with the version catalogue that was added by Gradle, we currently do not use the platform anymore.
2022-02-18perf(common): Optimize TimerSchedulerFabian Mastenbroek
This change updates the TimerScheduler implementation to directly use the Delay object instead of running the timers inside a coroutine. Constructing the coroutine is more expensive, so we prefer running in a Runnable.
2022-02-18refactor(utils): Rename utils module to common moduleFabian Mastenbroek
This change adds a new module, opendc-common, that contains functionality that is shared across OpenDC's modules. We move the existing utils module into this new module.
2022-02-18feat(utils): Add Pacer to pace scheduling cyclesFabian Mastenbroek
This change adds a new Pacer class that can pace the incoming scheduling requests into scheduling cycles by allowing the user to specify a scheduling quantum.
2022-02-18build: Update to Gradle 7.4Fabian Mastenbroek
This change updates the Gradle wrapper to version 7.4.
2022-02-18build(web/ui): Bump next to 12.1.0 (#58)dependabot[bot]
Bumps [next](https://github.com/vercel/next.js) from 11.1.3 to 12.1.0. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v11.1.3...v12.1.0) --- updated-dependencies: - dependency-name: next dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-17fix(web/ui): Fix creation of topologiesFabian Mastenbroek
This change fixes an issue with the creation of topologies in the frontend. Previously, the frontend relied on Redux to update the state. However, since we removed the reliance on Redux, we also need to create a new topology using the functions from React Query to actually send a request to the API server.
2022-02-17merge: Update deployment via DockerFabian Mastenbroek
This pull request updates the deployment process to be compatible with the latest auth changes. - Support custom audience in web runner - Fix API deployment using Docker Compose - Actualize deployment guide - Update to OpenJDK 17 **External Dependencies** - Mongo 5 - OpenJDK 17
2022-02-17build(docker): Update to OpenJDK 17Fabian Mastenbroek
This change updates the base image of the simulator to OpenJDK 17.
2022-02-17docs: Actualize deployment guideFabian Mastenbroek
This change updates the deployment guide for the recent change of the simulator runner which now communicates via the API instead of directly with the Mongo database. See 6752b6d50faab447b3edc13bddf14f53401392f1 for more information.
2022-02-17ci: Fix API deployment using Docker ComposeFabian Mastenbroek
This change updates the Docker Compose configuration to properly deploy the API server, by passing the necessary Auth0 information to it.
2022-02-17fix(web/runner): Support custom audience in web runnerFabian Mastenbroek
This change adds support for custom audience values in the web runner. If the audience used by the user is different from the default value (https://api.opendc.org/v2/), then the runner fails to obtain a valid access token for the API.
2022-02-15refactor: Update OpenTelemetry to version 1.11Fabian Mastenbroek
This change updates the OpenDC codebase to use OpenTelemetry v1.11, which stabilizes the metrics API. This stabilization brings quite a few breaking changes, so significant changes are necessary inside the OpenDC codebase.
2022-01-22build(ui): Upgrade nanoid to 3.2.0 (#54)dependabot[bot]
Bumps [nanoid](https://github.com/ai/nanoid) from 3.1.25 to 3.2.0. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.1.25...3.2.0) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11merge: Update to Kotlin 1.6.10Fabian Mastenbroek
This pull request updates the OpenDC codebase to use Kotlin 1.6.10 for building the project. * Update to Kotlin 1.6.10 * Update build dependencies to their latest version * Update project dependencies to their latest version where possible. * Add Dependabot configuration
2022-01-11ci: Add Dependabot configuration for GitHub actionsFabian Mastenbroek
This change adds a Dependabot configuration to the repository to check for GitHub Actions updates.
2022-01-11build: Update project dependenciesFabian Mastenbroek
This change updates the project dependencies to their latest versions where possible.
2022-01-11build: Update to Kotlin 1.6.10Fabian Mastenbroek
This change updates the build script to use Kotlin 1.6.10 for building OpenDC.
2021-12-30merge: Address log4j vulnerabilitiesFabian Mastenbroek
This pull request addresses the issues with log4j in OpenDC. * Update log4j to version 2.17.1 * Update Gradle to version 7.3.3 * Update other dependencies
2021-12-29build: Update build dependenciesFabian Mastenbroek
This change updates the dependencies for the simulator. These changes may include possible fixes for the vulnerabilities in log4j.
2021-12-29build: Update to Gradle 7.3.3Fabian Mastenbroek
This change updates the Gradle wrapper version to 7.3.3 which includes a fix for the recent log4j vulnerabilities.
2021-12-29build: Update to log4j 2.17.1Fabian Mastenbroek
This change fixes vulnerabilities found in earlier versions of log4j.
2021-12-12fix(trace): Read dependencies from .gwf trace file (#50)Florian Gerlinghoff
Tasks from a .gwf trace file did not have dependencies because this property was not assigned after being read in the GwfTaskTableReader. I removed the conversion from String to Long in parseParents because it seems like other readers (the Parquet reader in particular) return Strings as well, which is why they are converted to Long in line 75 of TraceHelpers.kt. Co-authored-by: Fabian Mastenbroek <mail.fabianm@gmail.com>
2021-12-11build: Update to log4j 2.15.0Fabian Mastenbroek
This change addresses the RCE vulnerability in log4j <= 2.14.1.
2021-12-09merge: Support convergence of space shared hypervisorFabian Mastenbroek
This change addresses an issue with the SimSpaceSharedHypervisor implementation where it did not emit convergence events due to missing implementation. This caused issues with users of this class trying to obtain usage data, which depended on these events being emitted. * Support `FlowConvergenceListener` in `FlowForwarder` and `ForwardingFlowMux` * Support `FlowConvergenceListener` in `SimSpaceSharedHypervisor`. ## Breaking API Changes :warning: * N/A
2021-12-09ci: Fix issue with actions/upload-artifact@v2Fabian Mastenbroek
This change is a workaround for the issue with actions/upload-artifact@v2 which randomly fails on Windows instances.
2021-12-09fix(simulator): Support convergence of space shared hypervisorFabian Mastenbroek
This change addresses an issue with the SimSpaceSharedHypervisor implementation where it did not emit convergence events due to missing implementation. This caused issues with users of this class trying to obtain usage data, which depended on these events being emitted.
2021-12-09build(ui): Bump next to 11.1.3 (#47)dependabot[bot]
Bumps [next](https://github.com/vercel/next.js) from 11.1.2 to 11.1.3. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v11.1.2...v11.1.3) --- updated-dependencies: - dependency-name: next dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-01bug(workflow): Activate timer even without incoming jobsFabian Mastenbroek
This change fixes an issue where a scheduling cycle is not scheduled when there are no incoming jobs. Still, there might be pending tasks that can be scheduled. Therefore, we remove this conditional.
2021-11-24merge: Update to Kotlin 1.6 (#45)Fabian Mastenbroek
This pull request updates the Kotlin version used by OpenDC to 1.6 as well as updating the dependencies to their latest version where possible.
2021-11-24build: Update OpenDC dependenciesFabian Mastenbroek
This change updates the OpenDC dependencies to their latest version where possible. We do not update OpenTelemetry, since the new version contains breaking changes that need to be resolved seperately.
2021-11-24build: Update to Kotlin 1.6Fabian Mastenbroek
This change updates the build process to use Kotlin 1.6.0.
2021-11-19docs: Add CITATION.cffFabian Mastenbroek
This change adds a CITATION.cff file to the repository which Github uses to display how users can cite the project.
2021-11-17merge: Improve workflow service (#43)Fabian Mastenbroek
This pull request is the first in a series of changes to the workflow service. This pull request aims to help users setup workflow simulations. The next pull requests will focus on improving the design of the workflow service. * Remove WorkflowSchedulerMode * Add helper tools for workflow simulations (e.g. `WorkflowServiceHelper`) **Breaking API Changes** * Removal of `WorkflowSchedulerMode` * Rename from `ComputeWorkloadRunner` to `ComputeServiceHelper`
2021-11-17refactor(workflow): Remove WorkflowSchedulerModeFabian Mastenbroek
This change removes the WorkflowSchedulerMode interface in favour of an integrated timer scheduler approach that batches scheduling cycles over a user-specified quantum. This quantum can be lowered to a small value to get the interactive behavior. There is no replacement for the random behavior, but we believe that such a policy makes no sense in a real-world scenario.
2021-11-16feat(workflow): Add helper tools for workflow simulationsFabian Mastenbroek
This change adds a new module, opendc-workflow-workload that contains helper code for constructing workflow simulations using OpenDC.
2021-11-11merge: Upgrade to Gradle 7.3 (#42)Fabian Mastenbroek
This pull request upgrades Gradle to version 7.3. OpenDC uses Gradle to orchestrate the build process. * Upgrade to Gradle wrapper to 7.3 * Fix Gradle release candidate test workflow
2021-11-11ci: Build with Java 17Fabian Mastenbroek
This change updates the CI workflows to build the simulator with Java 17 by default, which is the latest available release.
2021-11-11ci: Fix Gradle release candidate test workflowFabian Mastenbroek
This change fixes an issue with the workflow that tests the latest Gradle release candidate where the distribution of the Java runtime was not specified, which has been made a required parameter since setup-java@v2.
2021-11-11build: Upgrade to Gradle 7.3Fabian Mastenbroek
This change updates the Gradle wrapper to version 7.3. This release adds official support for Java 17 as well as various improvements. See the release notes for more information: https://docs.gradle.org/7.3/release-notes.html
2021-11-02ci: Update Github Actions workflows (#40)Fabian Mastenbroek
This pull request updates the CI pipeline of the project. **Implementation Notes** - Update to Codecov action v2 - Update to `setup-java` v2 - Migrate to `gradle/gradle-build-action@v2` - Add workflows for testing Java and Gradle EA releases - Update build dependencies **External Dependencies** - Kotlin, Github Actions, Ktlint, Dokka
2021-11-02build: Update build dependenciesFabian Mastenbroek
2021-11-02ci: Add workflows for testing Java and Gradle EA releasesFabian Mastenbroek
This change adds two workflows that test weekly whether OpenDC builds against the latest Gradle release candidate (RC) and Java early access (EA) release.
2021-11-02ci: Update Java Github Actions workflowsFabian Mastenbroek
This change updates the Github Actions workflows for the Java/Kotlin part of the project. We now use the gradle-build-action from Gradle to build the project, which does caching for us. In addition, we update the Codecov action to version 2, since the old version is deprecated and will stop working next year.
2021-11-02build(ui): Bump ansi-regex to 5.0.1 (#38)dependabot[bot]
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1. - [Release notes](https://github.com/chalk/ansi-regex/releases) - [Commits](https://github.com/chalk/ansi-regex/compare/v5.0.0...v5.0.1) --- updated-dependencies: - dependency-name: ansi-regex dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>