summaryrefslogtreecommitdiff
path: root/simulator
diff options
context:
space:
mode:
authorjc0b <j@jc0b.computer>2020-07-24 12:19:59 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 19:48:23 +0200
commitac32bdb6c33f546133dd4e1fd1dd400195354679 (patch)
tree3f95ce7fdcc19ae8ce915d0d969d9da59b9f840d /simulator
parenta4ce2e57a52c226b62ac663dc629f3667e4fb2b4 (diff)
parent2892f05baeb79f77586eb36d3506a57b1d20b8aa (diff)
Merge branch 'master' of github.com:atlarge-research/opendc-dev
Diffstat (limited to 'simulator')
-rw-r--r--simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/telemetry/parquet/ParquetRunEventWriter.kt2
-rw-r--r--simulator/opendc/opendc-runner-web/src/main/kotlin/com/atlarge/opendc/runner/web/Main.kt15
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()
}
}
}