summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-02merge: Add generic trace reading libraryFabian Mastenbroek
This pull request adds a generic trace reading library to OpenDC. The library has been designed to support a wide range of trace formats and uses a streaming approach to improve performance of reading large traces. * Add trace reading API * Implement API for GWF format * Implement API for SWF format * Implement API for WTF format * Implement API for Bitbrains format * Implement API for Bitbrains Parquet format **Breaking API Changes** * `opendc-format` has been removed in favour of `opendc-trace-*`
2021-09-02perf(trace): Improve performance of column lookupFabian Mastenbroek
2021-09-02refactor(capelin): Migrate trace reader to new trace APIFabian Mastenbroek
This change updates the trace reading classes in the Capelin experiment to use the new trace API in order to re-use many of the trace reading parts.
2021-09-02refactor(trace): Implement trace API for WTF readerFabian Mastenbroek
This change updates the WTF trace reader to support the new streaming trace API.
2021-09-02refactor(trace): Implement trace API for SWF readerFabian Mastenbroek
This change updates the SWF trace reader to support the new streaming trace API.
2021-09-02refactor(trace): Move Bitbrains format into separate moduleFabian Mastenbroek
This change moves Bitbrains trace support into a separate module and adds support for the new trace api.
2021-09-02refactor(format): Remove environment reader from format libraryFabian Mastenbroek
This change removes the environment reader from the format library since they are highly specific for the particular experiment. In the future, we hope to have a single format to setup the entire datacenter (perhaps similar to the format used by the web runner).
2021-09-02refactor(trace): Extract Parquet helpers into separate moduleFabian Mastenbroek
This change extracts the Parquet helpers outside format module into a new module, in order to improve re-usability of these helpers.
2021-09-02refactor(trace): Move GWF trace reader into separate moduleFabian Mastenbroek
This change starts the process of moving the different trace formats into separate modules. This change in particular moves the GWF trace format into a new module, opendc-trace-gwf. Furthermore, this change also implements the trace API for the GWF module.
2021-09-01feat(trace): Add API for trace readingFabian Mastenbroek
This change introduces a new OpenDC API for reading various trace formats in a streaming manner.
2021-09-01build(ui): Bump Next.js from 11.1.0 to 11.1.1dependabot[bot]
Bumps [next](https://github.com/vercel/next.js) from 11.1.0 to 11.1.1. - [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.0...v11.1.1) --- 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-08-31merge: Update build dependenciesFabian Mastenbroek
This change updates the build dependencies of the OpenDC simulator. * Update Kotlin to 1.5.3.0 * Update dependencies to latest version
2021-08-31build: Update dependencies to latest versionFabian Mastenbroek
2021-08-31build: Update to Kotlin 1.5.30Fabian Mastenbroek
2021-08-25merge: Measure power draw in SimHost without PSU overheadFabian Mastenbroek
This pull request implements power draw reporting in SimHost where the power draw is computed without PSU overhead. * Remove usage and speed fields from SimMachine * Measure power draw without PSU overhead **Breaking API Changes** * `SimMachine.usage` and `SimMachine.speed` fields are removed.
2021-08-25refactor(compute): Measure power draw without PSU overheadFabian Mastenbroek
This change updates the SimHost implementation to measure the power draw of the machine without PSU overhead to make the results more realistic.
2021-08-25refactor(simulator): Remove usage and speed fields from SimMachineFabian Mastenbroek
This change removes the usage and speed fields from SimMachine. We currently use other ways to capture the usage and speed and these fields cause an additional maintenance burden and performance impact. Hence the removal of these fields.
2021-08-25merge: Upgrade to OpenTelemetry 1.5Fabian Mastenbroek
This pull request updates to OpenTelemetry version 1.5.0. * Update dependency to OpenTelemetry 1.5 * Fix breaking changes in metrics API * Eliminate unnecessary double to long conversions * Simplify metric extraction for monitor
2021-08-25refactor(capelin): Simplify metric extraction for monitorFabian Mastenbroek
This change updates the metric exporter logic in the Capelin module and reduces the number of allocations by looping directly over the collection of metrics.
2021-08-25fix(capelin): Eliminate unnecessary double to long conversionsFabian Mastenbroek
This change eliminates the unnecessary conversions from double to long in the Capelin metric processing code.
2021-08-25fix(simulator): Eliminate unnecessary double to long conversionsFabian Mastenbroek
This change eliminates unnecessary double to long conversions in the simulator. Previously, we used longs to denote the amount of work. However, in the mean time we have switched to doubles in the lower stack.
2021-08-25build: Upgrade to OpenTelemetry 1.5Fabian Mastenbroek
This change upgrades the OpenTelemetry dependency to version 1.5, which contains various breaking changes in the metrics API.
2021-08-24merge: Add tests for interference and failures in CapelinFabian Mastenbroek
This pull request updates the Capelin experiments to test for interference and failure scenarios. This allows us to track regressions in these subsystems more easily. * Clean up Bitbrains trace reader to enable re-use * Keep trace order after sampling * Update Bitbrains trace tests * Add support for reporting interfered work * Add support for SimHost failure * Add tests for interference and failures
2021-08-24test(capelin): Add tests for interference and failuresFabian Mastenbroek
This change adds tests to the Capelin integration suite for performance interference as well as failures. These test more accurately the experiment setup.
2021-08-24feat(compute): Add support for SimHost failureFabian Mastenbroek
This change adds support for failures in the SimHost implementation. Failing a host will now cause the virtual machine to enter an error state.
2021-08-24feat(simulator): Add support for reporting interfered workFabian Mastenbroek
This change adds support to the simulator for reporting the work lost due to performance interference.
2021-08-24fix(capelin): Update Bitbrains trace testsFabian Mastenbroek
This change updates the Bitbrains trace tests with the updated trace that does not hardcode the duration of the trace fragments.
2021-08-24fix(capelin): Keep trace order after samplingFabian Mastenbroek
This change fixes an issue with the workload sampler where the resulting workload entries would not be ordered properly according to their submission time.
2021-08-24refactor(format): Clean up Bitbrains trace reader to enable re-useFabian Mastenbroek
This change updates the code for the Bitbrains trace reader and upgrades the TraceConverter to re-use existing code of the Bitbrains trace reader.
2021-08-24merge: Execute trace fragments based on timestampsFabian Mastenbroek
This pull request updates the simulator to execute workload traces based on the fragment's timestamps. This means that traces will execute their timestamps at the correct time. * Execute traces based on timestamps * Record overcommit only after deadline exceeded * Support trace fragments with zero cores available * Support unaligned trace fragments **Breaking API Changes** * `SimTraceWorkload.Fragment` now requires a `timestamp` parameter.
2021-08-24fix(simulator): Support unaligned trace fragmentsFabian Mastenbroek
2021-08-24fix(simulator): Support trace fragments with zero cores availableFabian Mastenbroek
This change fixes an issue with the simulator where trace fragments with zero cores to execute would give a NaN amount of work.
2021-08-24fix(simulator): Record overcommit only after deadlineFabian Mastenbroek
This change fixes an issue with the simulator where it would record overcomitted work if the output was updated before the deadline was reached.
2021-08-24refactor(simulator): Execute traces based on timestampsFabian Mastenbroek
This change refactors the trace workload in the OpenDC simulator to track execute a fragment based on the fragment's timestamp. This makes sure that the trace is replayed identically to the original execution.
2021-08-22merge: Follow OpenStack's Nova scheduler implementation more closelyFabian Mastenbroek
This pull request updates the FilterScheduler in OpenDC Compute to follow OpenStack's Nova scheduler implementation more closely. * Normalize weights returned by weighers * Implement RAM and vCPU overcomitting * Implement VCPU filter **Breaking API Changes** * `MemoryFilter` and `CoreMemoryFilter` renamed to `RamFilter` and `CoreRamFilter` * `ComputeCapabilityFilter` replaced by `VCpuFilter` and `RamFilter`
2021-08-22refactor(compute): Update FilterScheduler to follow OpenStack's NovaFabian Mastenbroek
This change updates the FilterScheduler implementation to follow more closely the scheduler implementation in OpenStack's Nova. We now normalize the weights, support many of the filters and weights in OpenStack and support overcommitting resources.
2021-08-22fix(compute): Track failed servers with counters correctlyFabian Mastenbroek
2021-08-22perf(simulator): Prevent counter update without workFabian Mastenbroek
This change implements a performance improvement by preventing updates on the resource counters in case no work was performed in the last cycle.
2021-08-17feat(ui): Add context selectorsFabian Mastenbroek
This change adds context selectors for the OpenDC frontend where the user can select different projects, portfolios or topologies from the context selection bar.
2021-08-13build: Update Kotlin dependenciesFabian Mastenbroek
This change updates the Kotlin dependencies used by OpenDC to their latest version.
2021-08-13build(ui): Bump Next.js to 11.1.0dependabot[bot]
Bumps [next](https://github.com/vercel/next.js) from 11.0.1 to 11.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.0.1...v11.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>
2021-07-29build: Update Kotlin dependenciesFabian Mastenbroek
This change updates the Kotlin dependencies used by OpenDC to their latest version.
2021-07-22merge: Address technical debt in topology view v2 (#163)Fabian Mastenbroek
This pull request aims to address some of the technical debt in the topology view of the OpenDC frontend (v2). * Perform Saga mutations through React Query * Add table view for topology view * Extract topology construction out of Sagas * Toggle to Floor Plan on room select
2021-07-22feat(ui): Toggle to Floor Plan on room selectFabian Mastenbroek
2021-07-22feat(ui): Extract topology construction out of SagasFabian Mastenbroek
This change updates the OpenDC frontend to perform the construction of the topology directly in the reducers instead of performing the mutations in Redux Sagas as side effects. This allows us to nicely map actions to mutations in the reducers.
2021-07-22feat(ui): Add table view for topology roomsFabian Mastenbroek
2021-07-22fix(ui): Load correct topology viewFabian Mastenbroek
This change fixes an issue where the only the default topology view would be shown to the user.
2021-07-20refactor(ui): Perform Saga mutations through React QueryFabian Mastenbroek
This change updates the OpenDC frontend to perform mutations of the topology done in Sagas through the React Query cache, so that non-Saga parts of the application also have their topology queries updated.
2021-07-20merge: Address technical dept in topology view (#162)Fabian Mastenbroek
This pull request aims to address some of the technical debt in the topology view of the OpenDC frontend. * Add support for panning of the datacenter topology * Isolate world coordinate space (world objects do not depend on camera scale or position) * Split transpiled modules into a separate chunk to reduce deduplication * Encode state in topology actions to reduce global state * Restructure components per page * Enable more ESLint rules through `eslint:recommended` ruleset * Move page components in separate files.
2021-07-20refactor(ui): Move page components in separate filesFabian Mastenbroek