diff options
Diffstat (limited to 'simulator')
2 files changed, 13 insertions, 4 deletions
diff --git a/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/telemetry/parquet/ParquetRunEventWriter.kt b/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/telemetry/parquet/ParquetRunEventWriter.kt index c1724369..043e4670 100644 --- a/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/telemetry/parquet/ParquetRunEventWriter.kt +++ b/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/telemetry/parquet/ParquetRunEventWriter.kt @@ -51,6 +51,7 @@ public class ParquetRunEventWriter(path: File, bufferSize: Int) : record.put("topology", scenario.topology.name) record.put("workload_name", scenario.workload.name) record.put("workload_fraction", scenario.workload.fraction) + record.put("workload_sampler", scenario.workload.samplingStrategy) record.put("allocation_policy", scenario.allocationPolicy) record.put("failure_frequency", scenario.operationalPhenomena.failureFrequency) record.put("interference", scenario.operationalPhenomena.hasInterference) @@ -69,6 +70,7 @@ public class ParquetRunEventWriter(path: File, bufferSize: Int) : .name("topology").type().stringType().noDefault() .name("workload_name").type().stringType().noDefault() .name("workload_fraction").type().doubleType().noDefault() + .name("workload_sampler").type().stringType().noDefault() .name("allocation_policy").type().stringType().noDefault() .name("failure_frequency").type().doubleType().noDefault() .name("interference").type().booleanType().noDefault() diff --git a/simulator/opendc/opendc-runner-web/src/main/kotlin/com/atlarge/opendc/runner/web/Main.kt b/simulator/opendc/opendc-runner-web/src/main/kotlin/com/atlarge/opendc/runner/web/Main.kt index 0ff9b870..807c119e 100644 --- a/simulator/opendc/opendc-runner-web/src/main/kotlin/com/atlarge/opendc/runner/web/Main.kt +++ b/simulator/opendc/opendc-runner-web/src/main/kotlin/com/atlarge/opendc/runner/web/Main.kt @@ -276,6 +276,9 @@ class RunnerCli : CliktCommand(name = "runner") { } } + val POLL_INTERVAL = 5000L // ms = 5 s + val HEARTBEAT_INTERVAL = 60000L // ms = 1 min + override fun run() = runBlocking(Dispatchers.Default) { logger.info { "Starting OpenDC web runner" } logger.info { "Connecting to MongoDB instance" } @@ -293,7 +296,7 @@ class RunnerCli : CliktCommand(name = "runner") { val scenario = manager.findNext() if (scenario == null) { - delay(5000) + delay(POLL_INTERVAL) continue } @@ -308,9 +311,11 @@ class RunnerCli : CliktCommand(name = "runner") { coroutineScope { // Launch heartbeat process - launch { - delay(60000) - manager.heartbeat(id) + val heartbeat = launch { + while (true) { + delay(HEARTBEAT_INTERVAL) + manager.heartbeat(id) + } } try { @@ -326,6 +331,8 @@ class RunnerCli : CliktCommand(name = "runner") { } catch (e: Exception) { logger.warn(e) { "Scenario failed to finish" } manager.fail(id) + } finally { + heartbeat.cancel() } } } |
