From 1e95d668eb21eece59a402f500a9e38ec51af596 Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Mon, 16 Mar 2020 09:23:52 +0100 Subject: Extend performance interference model to support minimum server load Vincent pointed out that performance interference is only triggered at a certain total server load level. This addition supports that. --- .../atlarge/opendc/format/trace/sc20/PerformanceInterferenceEntry.kt | 1 + .../opendc/format/trace/sc20/Sc20PerformanceInterferenceReader.kt | 4 ++-- .../kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt | 2 +- .../main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) (limited to 'opendc/opendc-format/src') diff --git a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/PerformanceInterferenceEntry.kt b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/PerformanceInterferenceEntry.kt index 1eeecb25..ade47e1b 100644 --- a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/PerformanceInterferenceEntry.kt +++ b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/PerformanceInterferenceEntry.kt @@ -2,5 +2,6 @@ package com.atlarge.opendc.format.trace.sc20 internal data class PerformanceInterferenceEntry( val vms: List, + val minServerLoad: Double, val performanceScore: Double ) diff --git a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20PerformanceInterferenceReader.kt b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20PerformanceInterferenceReader.kt index b2d60bb9..daa1fdf8 100644 --- a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20PerformanceInterferenceReader.kt +++ b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20PerformanceInterferenceReader.kt @@ -31,7 +31,6 @@ import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.fasterxml.jackson.module.kotlin.readValue import java.io.InputStream -import java.util.UUID /** * A parser for the JSON performance interference setup files used for the SC20 paper. @@ -50,7 +49,8 @@ class Sc20PerformanceInterferenceReader(input: InputStream, mapper: ObjectMapper return PerformanceInterferenceModel( performanceInterferenceModel.map { item -> PerformanceInterferenceModelItem( - item.vms.map { name -> UUID(0L, name.toLong()) }.toSet(), + item.vms.toSet(), + item.minServerLoad, item.performanceScore ) }.toSet() diff --git a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt index 3c974e44..78a58671 100644 --- a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt +++ b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt @@ -125,7 +125,7 @@ class Sc20TraceReader( val uuid = UUID.randomUUID() val relevantPerformanceInterferenceModelItems = PerformanceInterferenceModel( - performanceInterferenceModel.items.filter { it.workloadIds.contains(uuid) }.toSet() + performanceInterferenceModel.items.filter { it.workloadNames.contains(vmId) }.toSet() ) val vmWorkload = VmWorkload( diff --git a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt index d001687c..6b8843aa 100644 --- a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt +++ b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/vm/VmTraceReader.kt @@ -123,7 +123,7 @@ class VmTraceReader( val uuid = UUID(0L, vmId) val relevantPerformanceInterferenceModelItems = PerformanceInterferenceModel( - performanceInterferenceModel.items.filter { it.workloadIds.contains(uuid) }.toSet() + performanceInterferenceModel.items.filter { it.workloadNames.contains(vmId.toString()) }.toSet() ) val vmWorkload = VmWorkload( -- cgit v1.2.3