| Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
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.
|
|
This change updates the Gradle wrapper to version 7.4.
|
|
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>
|
|
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.
|
|
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
|
|
This change updates the base image of the simulator to OpenJDK 17.
|
|
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.
|
|
This change updates the Docker Compose configuration to properly deploy
the API server, by passing the necessary Auth0 information to it.
|
|
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.
|
|
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.
|
|
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>
|
|
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
|
|
This change adds a Dependabot configuration to the repository to check
for GitHub Actions updates.
|
|
This change updates the project dependencies to their latest versions
where possible.
|
|
This change updates the build script to use Kotlin 1.6.10 for building
OpenDC.
|
|
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
|
|
This change updates the dependencies for the simulator. These changes
may include possible fixes for the vulnerabilities in log4j.
|
|
This change updates the Gradle wrapper version to 7.3.3 which includes a
fix for the recent log4j vulnerabilities.
|
|
This change fixes vulnerabilities found in earlier versions of log4j.
|
|
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>
|
|
This change addresses the RCE vulnerability in log4j <= 2.14.1.
|
|
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
|
|
This change is a workaround for the issue with
actions/upload-artifact@v2 which randomly fails on Windows instances.
|
|
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.
|
|
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>
|
|
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.
|
|
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.
|
|
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.
|
|
This change updates the build process to use Kotlin 1.6.0.
|
|
This change adds a CITATION.cff file to the repository which Github uses
to display how users can cite the project.
|
|
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`
|
|
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.
|
|
This change adds a new module, opendc-workflow-workload that contains
helper code for constructing workflow simulations using OpenDC.
|
|
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
|
|
This change updates the CI workflows to build the simulator with Java 17
by default, which is the latest available release.
|
|
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.
|
|
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
|
|
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
|
|
|
|
This change adds two workflows that test weekly whether OpenDC builds
against the latest Gradle release candidate (RC) and Java early access
(EA) release.
|
|
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.
|
|
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>
|
|
This change updates the implementation of the trace converter and
SimTrace implementation to support cases where there is a gap between
samples in the trace data.
This change allows users to specify what to do in case samples are
missing in the trace. The available options are specified in
`SimTrace.FillMode`. Currently, we support either carrying the previous
value forward or set the usage to zero.
|
|
This pull request contains various improvements to the OpenDC compute simulation model.
- Support filtering hosts based on CPU capacity
- Do not allocate lambda in fast-path
- Redesign VM interference algorithm
- Report provisioning time of virtual machines
- Prevent allocations during collection cycle
- Use correct flow input capacity for counters
- Support running workloads without coroutines
**Breaking API Changes**
- `VirtualMachine` now requires `cpuCapacity` parameter.
- `VmInterferenceModel` needs to be constructed using `VmInterferenceModel.Builder` and can't be passed a list of groups anymore.
- Scheduling latency is not collected anymore. Instead, use the boot time and provisioning time to derive the scheduling latency.
- Telemetry data is recorded using `*TableReader` interfaces as opposed to the `*Data` classes. These classes are re-used per row and should not be shared with other threads, since the underlying data may change.
- `SimMachine` does not implement `AutoCloseable` anymore. Machines can be removed from a `SimHypervisor` using the `removeMachine` method.
- `SimMachine.run` is moved to an extension method called `runWorkload`. Users can now also choose to run a workload using the asynchronous `SimMachine.startWorkload`.
|
|
This change updates the SimMachine interface to drop the coroutine
requirement for running a workload on a machines. Users can now
asynchronously start a workload and receive notifications via the
workload callbacks.
Users still have the possibility to suspend execution during workload
execution by using the new `runWorkload` method, which is implemented on
top of the new `startWorkload` primitive.
|
|
This change fixes an issue with the FlowMultiplexer implementation where
the capacity of each flow input was equal to the capacity of all flow
outputs. Now, the user can specify the capacity of the input, which will
be used to correctly compute the active and idle time.
|
|
This change redesigns the ComputeMonitor interface to reduce the number
of memory allocations necessary during a collection cycle.
|
|
This change adds support for collecting the provisioning time of virtual
machines in addition to their boot time.
|