summaryrefslogtreecommitdiff
path: root/opendc-experiments
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-experiments')
-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
-rw-r--r--opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt18
4 files changed, 31 insertions, 7 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,
)
diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt
index b14e499c..1a99cedf 100644
--- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt
+++ b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt
@@ -117,9 +117,25 @@ public class SimTFDevice(
output = null
}
+ override fun makeSnapshot(now: Long) {}
+
override fun setOffset(now: Long) {}
- override fun snapshot(): SimWorkload = throw UnsupportedOperationException()
+ override fun getSnapshot(): SimWorkload = throw UnsupportedOperationException()
+
+ override fun createCheckpointModel() {}
+
+ override fun getCheckpointInterval(): Long {
+ return -1
+ }
+
+ override fun getCheckpointDuration(): Long {
+ return -1
+ }
+
+ override fun getCheckpointIntervalScaling(): Double {
+ return -1.0
+ }
override fun onUpdate(
ctx: FlowStage,