diff options
Diffstat (limited to 'opendc-experiments/opendc-experiments-base/src')
3 files changed, 14 insertions, 6 deletions
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt index 8c1fa803..f5829f6d 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt @@ -121,8 +121,9 @@ public suspend fun ComputeService.replay( delay(max(0, (start - now - simulationOffset))) } - val checkpointTime = checkpointModelSpec?.checkpointTime ?: 0L - val checkpointWait = checkpointModelSpec?.checkpointWait ?: 0L + val checkpointInterval = checkpointModelSpec?.checkpointInterval ?: 0L + val checkpointDuration = checkpointModelSpec?.checkpointDuration ?: 0L + val checkpointIntervalScaling = checkpointModelSpec?.checkpointIntervalScaling ?: 1.0 // val workload = SimRuntimeWorkload( // entry.duration, @@ -131,7 +132,7 @@ public suspend fun ComputeService.replay( // checkpointWait // ) - val workload = entry.trace.createWorkload(start, checkpointTime, checkpointWait) + val workload = entry.trace.createWorkload(start, checkpointInterval, checkpointDuration, checkpointIntervalScaling) val meta = mutableMapOf<String, Any>("workload" to workload) launch { diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt index 5462b406..074fe49c 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt @@ -99,7 +99,13 @@ public fun runScenario( addExportModel(provisioner, serviceDomain, scenario, seed, startTime, carbonTrace, scenario.id) val service = provisioner.registry.resolve(serviceDomain, ComputeService::class.java)!! - service.replay(timeSource, tasks, failureModelSpec = scenario.failureModelSpec, seed = seed) + service.replay( + timeSource, + tasks, + failureModelSpec = scenario.failureModelSpec, + checkpointModelSpec = scenario.checkpointModelSpec, + seed = seed, + ) } } diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/CheckpointModelSpec.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/CheckpointModelSpec.kt index 6147d25d..ad0fba1d 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/CheckpointModelSpec.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/CheckpointModelSpec.kt @@ -26,6 +26,7 @@ import kotlinx.serialization.Serializable @Serializable public data class CheckpointModelSpec( - val checkpointWait: Long = 60 * 60 * 1000, - val checkpointTime: Long = 5 * 60 * 1000, + val checkpointInterval: Long = 60 * 60 * 1000, + val checkpointDuration: Long = 5 * 60 * 1000, + val checkpointIntervalScaling: Double = 1.0, ) |
