summaryrefslogtreecommitdiff
path: root/opendc/opendc-core
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2020-03-26 12:37:54 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-03-26 12:41:10 +0100
commit7eb8177e2278bde2c0f4fad00af6fdd2d632cb5b (patch)
treef5f7ffdce8efdcffb92e158ebbb643ba1a797b23 /opendc/opendc-core
parentb3d11a0740f9a925f9cebd524863668fb9b07000 (diff)
feat: Implement correlated failures for individual clusters
Diffstat (limited to 'opendc/opendc-core')
-rw-r--r--opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/failure/CorrelatedFaultInjector.kt5
1 files changed, 2 insertions, 3 deletions
diff --git a/opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/failure/CorrelatedFaultInjector.kt b/opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/failure/CorrelatedFaultInjector.kt
index 41412195..da4dee12 100644
--- a/opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/failure/CorrelatedFaultInjector.kt
+++ b/opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/failure/CorrelatedFaultInjector.kt
@@ -70,7 +70,6 @@ public class CorrelatedFaultInjector(
// Clean up the domain if it finishes
domain.scope.coroutineContext[Job]!!.invokeOnCompletion {
this@CorrelatedFaultInjector.domain.launch {
- println("CANCELLED")
active -= domain
if (active.isEmpty()) {
@@ -88,7 +87,8 @@ public class CorrelatedFaultInjector(
while (true) {
ensureActive()
- val d = lognvariate(iatScale, iatShape) * 1e3 // Make sure to convert delay to milliseconds
+ // Make sure to convert delay from hours to milliseconds
+ val d = lognvariate(iatScale, iatShape) * 3600 * 1e6
// Handle long overflow
if (simulationContext.clock.millis() + d <= 0) {
@@ -98,7 +98,6 @@ public class CorrelatedFaultInjector(
delay(d.toLong())
val n = lognvariate(sizeScale, sizeShape).toInt()
-
for (failureDomain in active.shuffled(random).take(n)) {
failureDomain.fail()
}