diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2024-10-25 13:32:41 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-25 13:32:41 +0200 |
| commit | 5a365dbc068f2a8cdfa9813c39cc84bb30e15637 (patch) | |
| tree | 72716d562787b85e03cdc7fe1d30c827054d25a0 /opendc-compute/opendc-compute-failure/src/main | |
| parent | 27f5b7dcb05aefdab9b762175d538931face0aba (diff) | |
Rewrote the FlowEngine (#256)
* Removed unused components. Updated tests.
Improved checkpointing model
Improved model, started with SimPowerSource
implemented FailureModels and Checkpointing
First working version
midway commit
first update
All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability.
* fixed merge conflicts
* Updated M3SA paths.
* Fixed small typo
Diffstat (limited to 'opendc-compute/opendc-compute-failure/src/main')
17 files changed, 28 insertions, 28 deletions
diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/HostFault.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/HostFault.kt index 4134c58a..a1e4c489 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/HostFault.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/HostFault.kt @@ -22,8 +22,8 @@ package org.opendc.compute.failure.hostfault -import org.opendc.compute.service.ComputeService -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ComputeService /** * Interface responsible for applying the fault to a host. diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/StartStopHostFault.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/StartStopHostFault.kt index 0bebca66..c7ddc5b5 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/StartStopHostFault.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/StartStopHostFault.kt @@ -23,10 +23,8 @@ package org.opendc.compute.failure.hostfault import kotlinx.coroutines.delay -import org.opendc.compute.api.ComputeClient -import org.opendc.compute.service.ComputeService -import org.opendc.compute.simulator.SimHost -import org.opendc.simulator.compute.workload.SimWorkload +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ComputeService /** * A type of [HostFault] where the hosts are stopped and recover after a given amount of time. @@ -38,18 +36,20 @@ public class StartStopHostFault( victims: List<SimHost>, faultDuration: Long, ) { - val client: ComputeClient = service.newClient() + val client: ComputeService.ComputeClient = service.newClient() for (host in victims) { - val tasks = host.instances + val guests = host.getGuests() - val sortedTasks = tasks.sortedBy { it.name } - val snapshots = sortedTasks.map { (it.meta["workload"] as SimWorkload).getSnapshot() } + val snapshots = guests.map { it.virtualMachine!!.getActiveWorkload().getSnapshot() } + val tasks = guests.map { it.task } host.fail() - for ((task, snapshot) in sortedTasks.zip(snapshots)) { + for ((task, snapshot) in tasks.zip(snapshots)) { client.rescheduleTask(task, snapshot) } + + print("test") } delay(faultDuration) diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/FailureModel.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/FailureModel.kt index 5f05d96c..f0cee5f2 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/FailureModel.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/FailureModel.kt @@ -29,8 +29,8 @@ import kotlinx.coroutines.launch import org.opendc.compute.failure.hostfault.HostFault import org.opendc.compute.failure.hostfault.StartStopHostFault import org.opendc.compute.failure.victimselector.StochasticVictimSelector -import org.opendc.compute.service.ComputeService -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/SampleBasedFailureModel.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/SampleBasedFailureModel.kt index 3ae66f6f..ae4077e8 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/SampleBasedFailureModel.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/SampleBasedFailureModel.kt @@ -24,7 +24,7 @@ package org.opendc.compute.failure.models import kotlinx.coroutines.delay import org.apache.commons.math3.distribution.RealDistribution -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/TraceBasedFailureModel.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/TraceBasedFailureModel.kt index f1ff09e9..cab96cd8 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/TraceBasedFailureModel.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/TraceBasedFailureModel.kt @@ -23,7 +23,7 @@ package org.opendc.compute.failure.models import kotlinx.coroutines.delay -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import org.opendc.trace.Trace import org.opendc.trace.conv.FAILURE_DURATION import org.opendc.trace.conv.FAILURE_INTENSITY @@ -71,7 +71,7 @@ public class TraceBasedFailureModel( service: ComputeService, random: RandomGenerator, pathToTrace: String, - private val repeat: Boolean = true, + private val repeat: Boolean = false, ) : FailureModel(context, clock, service, random) { private val failureList = loadTrace(pathToTrace) diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/G5k06.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/G5k06.kt index da58250d..1c1d65d2 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/G5k06.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/G5k06.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Lanl05.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Lanl05.kt index 3e722630..d3d4d704 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Lanl05.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Lanl05.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Ldns04.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Ldns04.kt index 4a8b3c0f..fd4bd351 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Ldns04.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Ldns04.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Microsoft99.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Microsoft99.kt index 725f6622..db27efb8 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Microsoft99.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Microsoft99.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Nd07cpu.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Nd07cpu.kt index 100a3a8d..eac2df0c 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Nd07cpu.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Nd07cpu.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Overnet03.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Overnet03.kt index 4f5e3f84..965e861d 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Overnet03.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Overnet03.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Pl05.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Pl05.kt index 3e1f1b58..5102bd6b 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Pl05.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Pl05.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/PrefabFailureModelFactory.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/PrefabFailureModelFactory.kt index 477f3ac4..361620b0 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/PrefabFailureModelFactory.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/PrefabFailureModelFactory.kt @@ -25,7 +25,7 @@ package org.opendc.compute.failure.prefab import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Skype06.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Skype06.kt index 7495bf66..30f7ec1b 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Skype06.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Skype06.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Websites02.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Websites02.kt index 77bb0d64..df37c27b 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Websites02.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Websites02.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/StochasticVictimSelector.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/StochasticVictimSelector.kt index fef60eb3..9b92cf33 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/StochasticVictimSelector.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/StochasticVictimSelector.kt @@ -22,7 +22,7 @@ package org.opendc.compute.failure.victimselector -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost import java.util.SplittableRandom import java.util.random.RandomGenerator import kotlin.math.max diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/VictimSelector.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/VictimSelector.kt index 955cbced..b276b8b4 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/VictimSelector.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/VictimSelector.kt @@ -22,7 +22,7 @@ package org.opendc.compute.failure.victimselector -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost /** * Interface responsible for selecting the victim(s) for fault injection. |
