summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-base
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-experiments/opendc-experiments-base')
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt7
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt8
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/CheckpointModelSpec.kt5
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,
)