| Age | Commit message (Collapse) | Author |
|
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.
|
|
This change redesigns the virtual machine interference algorithm to have
a fixed memory usage per `VmInterferenceModel` instance. Previously, for
every interference domain, a copy of the model would be created, leading
to OutOfMemory errors when running multiple experiments at the same
time.
|
|
This commit changes the lookup for host and server aggregators to use
`getOrPut` instead of `computeIfAbsent`. The former will inline the
lambda and not cause any memory allocation in the fast-path (e.g., the
key exists), while the latter always allocates lambda for constructing
the aggregator.
|
|
This change allows users to create servers with a smaller CPU capacity
than the host, by specifying the CPU capacity via metadata. This also
allows filtering hosts based on their available CPU capacity.
|
|
This pull request adds support for converting Azure traces to the OpenDC trace format.
* Support GZIP files in Azure trace
* Fix timestamp retrieval for Azure trace
* Add column for CPU capacity in OpenDC format
* Support conversion from Azure trace format
|
|
This change adds support for converting the Azure VM traces into the
OpenDC trace format.
|
|
This change adds a new column to resource table of the OpenDC trace format for
the CPU capacity provisioned for a virtual machine, so that this
capacity can be assigned to the virtual machine during simulation.
|
|
This change addresses an issue where the timestamps in the Azure trace
where not retrieved correctly from the files.
|
|
This change updates the Azure VM trace format implementation to directly
support loading a trace in GZIP format in order to prevent users having
to decompress the trace files so they can be opened by OpenDC.
|
|
This pull request addresses several regressions that have been introduced in the past few pull requests.
- Fix queue resizing logic
- Change clock resolution from milliseconds to nanoseconds in `OtelClockAdapter`
- Compute energy usage in absence of convergence
- Fix duplicate classpath entries
- Fix release workflow
**Breaking API Changes**
- `OtelClockAdapter` now exports time in nanoseconds as the method contract describes.
|
|
This change fixes an issue with a missing whitespace in the release
workflow, causing the workflow to not be parsed correctly.
|