summaryrefslogtreecommitdiff
path: root/simulator/opendc-format/src
diff options
context:
space:
mode:
Diffstat (limited to 'simulator/opendc-format/src')
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/environment/EnvironmentReader.kt3
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceEntry.kt36
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceReader.kt5
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceWriter.kt45
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/bitbrains/BitbrainsTraceReader.kt55
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/gwf/GwfTraceReader.kt33
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/sc20/Sc20TraceReader.kt55
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/swf/SwfTraceReader.kt51
-rw-r--r--simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/wtf/WtfTraceReader.kt32
-rw-r--r--simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/swf/SwfTraceReaderTest.kt10
-rw-r--r--simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/wtf/WtfTraceReaderTest.kt4
11 files changed, 85 insertions, 244 deletions
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/environment/EnvironmentReader.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/environment/EnvironmentReader.kt
index 81fe04a1..97d6f239 100644
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/environment/EnvironmentReader.kt
+++ b/simulator/opendc-format/src/main/kotlin/org/opendc/format/environment/EnvironmentReader.kt
@@ -22,11 +22,10 @@
package org.opendc.format.environment
-import org.opendc.core.Environment
import java.io.Closeable
/**
- * An interface for reading descriptions of topology environments into memory as [Environment].
+ * An interface for reading descriptions of topology environments into memory.
*/
public interface EnvironmentReader : Closeable {
/**
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceEntry.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceEntry.kt
index ec547e84..3ce79d69 100644
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceEntry.kt
+++ b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceEntry.kt
@@ -24,31 +24,21 @@
package org.opendc.format.trace
-import org.opendc.core.workload.Workload
+import java.util.UUID
/**
* An entry in a workload trace.
*
- * @param T The shape of the workload in this entry.
+ * @param uid The unique identifier of the entry.
+ * @param name The name of the entry.
+ * @param start The start time of the workload.
+ * @param workload The workload of the entry.
+ * @param meta The meta-data associated with the workload.
*/
-public interface TraceEntry<T : Workload> {
- /**
- * The time of submission of the workload.
- */
- public val submissionTime: Long
-
- /**
- * The workload in this trace entry.
- */
- public val workload: T
-
- /**
- * Extract the submission time from this entry.
- */
- public operator fun component1(): Long = submissionTime
-
- /**
- * Extract the workload from this entry.
- */
- public operator fun component2(): T = workload
-}
+public data class TraceEntry<out T>(
+ val uid: UUID,
+ val name: String,
+ val start: Long,
+ val workload: T,
+ val meta: Map<String, Any>
+)
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceReader.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceReader.kt
index a0beec3e..7df1acd3 100644
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceReader.kt
+++ b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceReader.kt
@@ -22,14 +22,13 @@
package org.opendc.format.trace
-import org.opendc.core.workload.Workload
import java.io.Closeable
/**
- * An interface for reading [Workload]s into memory.
+ * An interface for reading workloads into memory.
*
* This interface must guarantee that the entries are delivered in order of submission time.
*
* @param T The shape of the workloads supported by this reader.
*/
-public interface TraceReader<T : Workload> : Iterator<TraceEntry<T>>, Closeable
+public interface TraceReader<T> : Iterator<TraceEntry<T>>, Closeable
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceWriter.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceWriter.kt
deleted file mode 100644
index 54fb6214..00000000
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/TraceWriter.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * MIT License
- *
- * Copyright (c) 2019 atlarge-research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package org.opendc.format.trace
-
-import org.opendc.core.workload.Workload
-import java.io.Closeable
-
-/**
- * An interface for persisting workload traces (e.g. to disk).
- *
- * @param T The type of [Workload] supported by this writer.
- */
-public interface TraceWriter<T : Workload> : Closeable {
- /**
- * Write an entry to the trace.
- *
- * Entries must be written in order of submission time. Failing to do so results in a [IllegalArgumentException].
- *
- * @param submissionTime The time of submission of the workload.
- * @param workload The workload to write to the trace.
- */
- public fun write(submissionTime: Long, workload: T)
-}
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/bitbrains/BitbrainsTraceReader.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/bitbrains/BitbrainsTraceReader.kt
index 1571b17d..769b2b13 100644
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/bitbrains/BitbrainsTraceReader.kt
+++ b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/bitbrains/BitbrainsTraceReader.kt
@@ -22,14 +22,12 @@
package org.opendc.format.trace.bitbrains
-import org.opendc.compute.api.ComputeWorkload
-import org.opendc.compute.api.Image
-import org.opendc.core.User
import org.opendc.format.trace.TraceEntry
import org.opendc.format.trace.TraceReader
import org.opendc.simulator.compute.interference.IMAGE_PERF_INTERFERENCE_MODEL
import org.opendc.simulator.compute.interference.PerformanceInterferenceModel
import org.opendc.simulator.compute.workload.SimTraceWorkload
+import org.opendc.simulator.compute.workload.SimWorkload
import java.io.BufferedReader
import java.io.File
import java.io.FileReader
@@ -45,17 +43,17 @@ import kotlin.math.min
public class BitbrainsTraceReader(
traceDirectory: File,
performanceInterferenceModel: PerformanceInterferenceModel
-) : TraceReader<ComputeWorkload> {
+) : TraceReader<SimWorkload> {
/**
* The internal iterator to use for this reader.
*/
- private val iterator: Iterator<TraceEntry<ComputeWorkload>>
+ private val iterator: Iterator<TraceEntry<SimWorkload>>
/**
* Initialize the reader.
*/
init {
- val entries = mutableMapOf<Long, TraceEntry<ComputeWorkload>>()
+ val entries = mutableMapOf<Long, TraceEntry<SimWorkload>>()
var timestampCol = 0
var coreCol = 0
@@ -132,50 +130,27 @@ public class BitbrainsTraceReader(
)
val workload = SimTraceWorkload(flopsHistory.asSequence())
- val vmWorkload = ComputeWorkload(
+ entries[vmId] = TraceEntry(
uuid,
- "VM Workload $vmId",
- UnnamedUser,
- Image(
- uuid,
- vmId.toString(),
- mapOf(
- IMAGE_PERF_INTERFERENCE_MODEL to relevantPerformanceInterferenceModelItems,
- "cores" to cores,
- "required-memory" to requiredMemory,
- "workload" to workload
- )
- )
- )
- entries[vmId] = TraceEntryImpl(
+ vmId.toString(),
startTime,
- vmWorkload
+ workload,
+ mapOf(
+ IMAGE_PERF_INTERFERENCE_MODEL to relevantPerformanceInterferenceModelItems,
+ "cores" to cores,
+ "required-memory" to requiredMemory,
+ "workload" to workload
+ )
)
}
// Create the entry iterator
- iterator = entries.values.sortedBy { it.submissionTime }.iterator()
+ iterator = entries.values.sortedBy { it.start }.iterator()
}
override fun hasNext(): Boolean = iterator.hasNext()
- override fun next(): TraceEntry<ComputeWorkload> = iterator.next()
+ override fun next(): TraceEntry<SimWorkload> = iterator.next()
override fun close() {}
-
- /**
- * An unnamed user.
- */
- private object UnnamedUser : User {
- override val name: String = "<unnamed>"
- override val uid: UUID = UUID.randomUUID()
- }
-
- /**
- * An entry in the trace.
- */
- private data class TraceEntryImpl(
- override var submissionTime: Long,
- override val workload: ComputeWorkload
- ) : TraceEntry<ComputeWorkload>
}
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/gwf/GwfTraceReader.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/gwf/GwfTraceReader.kt
index cd7aff3c..a521dd22 100644
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/gwf/GwfTraceReader.kt
+++ b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/gwf/GwfTraceReader.kt
@@ -23,7 +23,6 @@
package org.opendc.format.trace.gwf
import org.opendc.compute.api.Image
-import org.opendc.core.User
import org.opendc.format.trace.TraceEntry
import org.opendc.format.trace.TraceReader
import org.opendc.simulator.compute.workload.SimFlopsWorkload
@@ -88,7 +87,8 @@ public class GwfTraceReader(reader: BufferedReader) : TraceReader<Job> {
* Initialize the reader.
*/
init {
- val entries = mutableMapOf<Long, TraceEntryImpl>()
+ val workflows = mutableMapOf<Long, Job>()
+ val starts = mutableMapOf<Long, Long>()
val tasks = mutableMapOf<Long, Task>()
val taskDependencies = mutableMapOf<Task, List<Long>>()
@@ -131,22 +131,21 @@ public class GwfTraceReader(reader: BufferedReader) : TraceReader<Job> {
val flops: Long = 4000 * runtime * cores
- val entry = entries.getOrPut(workflowId) {
- TraceEntryImpl(submitTime, Job(UUID(0L, taskId), "<unnamed>", UnnamedUser, HashSet()))
+ val workflow = workflows.getOrPut(workflowId) {
+ Job(UUID(0L, workflowId), "<unnamed>", HashSet())
}
- val workflow = entry.workload
val workload = SimFlopsWorkload(flops)
val task = Task(
UUID(0L, taskId),
"<unnamed>",
- Image(UUID.randomUUID(), "<unnamed>", mapOf("workload" to workload)),
+ Image(UUID.randomUUID(), "<unnamed>", emptyMap(), mapOf("workload" to workload)),
HashSet(),
mapOf(
WORKFLOW_TASK_CORES to cores,
WORKFLOW_TASK_DEADLINE to (runtime * 1000)
),
)
- entry.submissionTime = min(entry.submissionTime, submitTime)
+ starts.merge(workflowId, submitTime, ::min)
(workflow.tasks as MutableSet<Task>).add(task)
tasks[taskId] = task
taskDependencies[task] = dependencies
@@ -165,7 +164,9 @@ public class GwfTraceReader(reader: BufferedReader) : TraceReader<Job> {
}
// Create the entry iterator
- iterator = entries.values.sortedBy { it.submissionTime }.iterator()
+ iterator = workflows.map { (id, job) -> TraceEntry(job.uid, job.name, starts.getValue(id), job, job.metadata) }
+ .sortedBy { it.start }
+ .iterator()
}
override fun hasNext(): Boolean = iterator.hasNext()
@@ -173,20 +174,4 @@ public class GwfTraceReader(reader: BufferedReader) : TraceReader<Job> {
override fun next(): TraceEntry<Job> = iterator.next()
override fun close() {}
-
- /**
- * An unnamed user.
- */
- private object UnnamedUser : User {
- override val name: String = "<unnamed>"
- override val uid: UUID = UUID.randomUUID()
- }
-
- /**
- * An entry in the trace.
- */
- private data class TraceEntryImpl(
- override var submissionTime: Long,
- override val workload: Job
- ) : TraceEntry<Job>
}
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/sc20/Sc20TraceReader.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/sc20/Sc20TraceReader.kt
index 07785632..dd12a380 100644
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/sc20/Sc20TraceReader.kt
+++ b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/sc20/Sc20TraceReader.kt
@@ -22,14 +22,12 @@
package org.opendc.format.trace.sc20
-import org.opendc.compute.api.ComputeWorkload
-import org.opendc.compute.api.Image
-import org.opendc.core.User
import org.opendc.format.trace.TraceEntry
import org.opendc.format.trace.TraceReader
import org.opendc.simulator.compute.interference.IMAGE_PERF_INTERFERENCE_MODEL
import org.opendc.simulator.compute.interference.PerformanceInterferenceModel
import org.opendc.simulator.compute.workload.SimTraceWorkload
+import org.opendc.simulator.compute.workload.SimWorkload
import java.io.BufferedReader
import java.io.File
import java.io.FileReader
@@ -49,17 +47,17 @@ public class Sc20TraceReader(
performanceInterferenceModel: PerformanceInterferenceModel,
selectedVms: List<String>,
random: Random
-) : TraceReader<ComputeWorkload> {
+) : TraceReader<SimWorkload> {
/**
* The internal iterator to use for this reader.
*/
- private val iterator: Iterator<TraceEntry<ComputeWorkload>>
+ private val iterator: Iterator<TraceEntry<SimWorkload>>
/**
* Initialize the reader.
*/
init {
- val entries = mutableMapOf<UUID, TraceEntry<ComputeWorkload>>()
+ val entries = mutableMapOf<UUID, TraceEntry<SimWorkload>>()
val timestampCol = 0
val cpuUsageCol = 1
@@ -157,50 +155,27 @@ public class Sc20TraceReader(
Random(random.nextInt())
)
val workload = SimTraceWorkload(flopsFragments.asSequence())
- val vmWorkload = ComputeWorkload(
+ entries[uuid] = TraceEntry(
uuid,
- "VM Workload $vmId",
- UnnamedUser,
- Image(
- uuid,
- vmId,
- mapOf(
- IMAGE_PERF_INTERFERENCE_MODEL to relevantPerformanceInterferenceModelItems,
- "cores" to cores,
- "required-memory" to requiredMemory,
- "workload" to workload
- )
- )
- )
- entries[uuid] = TraceEntryImpl(
+ vmId,
minTime,
- vmWorkload
+ workload,
+ mapOf(
+ IMAGE_PERF_INTERFERENCE_MODEL to relevantPerformanceInterferenceModelItems,
+ "cores" to cores,
+ "required-memory" to requiredMemory,
+ "workload" to workload
+ )
)
}
// Create the entry iterator
- iterator = entries.values.sortedBy { it.submissionTime }.iterator()
+ iterator = entries.values.sortedBy { it.start }.iterator()
}
override fun hasNext(): Boolean = iterator.hasNext()
- override fun next(): TraceEntry<ComputeWorkload> = iterator.next()
+ override fun next(): TraceEntry<SimWorkload> = iterator.next()
override fun close() {}
-
- /**
- * An unnamed user.
- */
- private object UnnamedUser : User {
- override val name: String = "<unnamed>"
- override val uid: UUID = UUID.randomUUID()
- }
-
- /**
- * An entry in the trace.
- */
- private data class TraceEntryImpl(
- override var submissionTime: Long,
- override val workload: ComputeWorkload
- ) : TraceEntry<ComputeWorkload>
}
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/swf/SwfTraceReader.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/swf/SwfTraceReader.kt
index ead20c35..375330f1 100644
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/swf/SwfTraceReader.kt
+++ b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/swf/SwfTraceReader.kt
@@ -22,12 +22,10 @@
package org.opendc.format.trace.swf
-import org.opendc.compute.api.ComputeWorkload
-import org.opendc.compute.api.Image
-import org.opendc.core.User
import org.opendc.format.trace.TraceEntry
import org.opendc.format.trace.TraceReader
import org.opendc.simulator.compute.workload.SimTraceWorkload
+import org.opendc.simulator.compute.workload.SimWorkload
import java.io.BufferedReader
import java.io.File
import java.io.FileReader
@@ -43,17 +41,17 @@ import java.util.*
public class SwfTraceReader(
file: File,
maxNumCores: Int = -1
-) : TraceReader<ComputeWorkload> {
+) : TraceReader<SimWorkload> {
/**
* The internal iterator to use for this reader.
*/
- private val iterator: Iterator<TraceEntry<ComputeWorkload>>
+ private val iterator: Iterator<TraceEntry<SimWorkload>>
/**
* Initialize the reader.
*/
init {
- val entries = mutableMapOf<Long, TraceEntry<ComputeWorkload>>()
+ val entries = mutableMapOf<Long, TraceEntry<SimWorkload>>()
val jobNumberCol = 0
val submitTimeCol = 1 // seconds (begin of trace is 0)
@@ -155,48 +153,27 @@ public class SwfTraceReader(
val uuid = UUID(0L, jobNumber)
val workload = SimTraceWorkload(flopsHistory.asSequence())
- val vmWorkload = ComputeWorkload(
+ entries[jobNumber] = TraceEntry(
uuid,
- "SWF Workload $jobNumber",
- UnnamedUser,
- Image(
- uuid,
- jobNumber.toString(),
- mapOf(
- "cores" to cores,
- "required-memory" to memory,
- "workload" to workload
- )
+ jobNumber.toString(),
+ submitTime,
+ workload,
+ mapOf(
+ "cores" to cores,
+ "required-memory" to memory,
+ "workload" to workload
)
)
-
- entries[jobNumber] = TraceEntryImpl(submitTime, vmWorkload)
}
}
// Create the entry iterator
- iterator = entries.values.sortedBy { it.submissionTime }.iterator()
+ iterator = entries.values.sortedBy { it.start }.iterator()
}
override fun hasNext(): Boolean = iterator.hasNext()
- override fun next(): TraceEntry<ComputeWorkload> = iterator.next()
+ override fun next(): TraceEntry<SimWorkload> = iterator.next()
override fun close() {}
-
- /**
- * An unnamed user.
- */
- private object UnnamedUser : User {
- override val name: String = "<unnamed>"
- override val uid: UUID = UUID.randomUUID()
- }
-
- /**
- * An entry in the trace.
- */
- private data class TraceEntryImpl(
- override var submissionTime: Long,
- override val workload: ComputeWorkload
- ) : TraceEntry<ComputeWorkload>
}
diff --git a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/wtf/WtfTraceReader.kt b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/wtf/WtfTraceReader.kt
index 5a271fab..c004162a 100644
--- a/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/wtf/WtfTraceReader.kt
+++ b/simulator/opendc-format/src/main/kotlin/org/opendc/format/trace/wtf/WtfTraceReader.kt
@@ -26,7 +26,6 @@ import org.apache.avro.generic.GenericRecord
import org.apache.hadoop.fs.Path
import org.apache.parquet.avro.AvroParquetReader
import org.opendc.compute.api.Image
-import org.opendc.core.User
import org.opendc.format.trace.TraceEntry
import org.opendc.format.trace.TraceReader
import org.opendc.simulator.compute.workload.SimFlopsWorkload
@@ -53,7 +52,8 @@ public class WtfTraceReader(path: String) : TraceReader<Job> {
* Initialize the reader.
*/
init {
- val entries = mutableMapOf<Long, TraceEntryImpl>()
+ val workflows = mutableMapOf<Long, Job>()
+ val starts = mutableMapOf<Long, Long>()
val tasks = mutableMapOf<Long, Task>()
val taskDependencies = mutableMapOf<Task, List<Long>>()
@@ -74,10 +74,9 @@ public class WtfTraceReader(path: String) : TraceReader<Job> {
val flops: Long = 4100 * (runtime / 1000) * cores
- val entry = entries.getOrPut(workflowId) {
- TraceEntryImpl(submitTime, Job(UUID(0L, taskId), "<unnamed>", UnnamedUser, HashSet()))
+ val workflow = workflows.getOrPut(workflowId) {
+ Job(UUID(0L, workflowId), "<unnamed>", HashSet())
}
- val workflow = entry.workload
val workload = SimFlopsWorkload(flops)
val task = Task(
UUID(0L, taskId),
@@ -85,6 +84,7 @@ public class WtfTraceReader(path: String) : TraceReader<Job> {
Image(
UUID.randomUUID(),
"<unnamed>",
+ emptyMap(),
mapOf(
"workload" to workload
)
@@ -96,7 +96,7 @@ public class WtfTraceReader(path: String) : TraceReader<Job> {
)
)
- entry.submissionTime = min(entry.submissionTime, submitTime)
+ starts.merge(workflowId, submitTime, ::min)
(workflow.tasks as MutableSet<Task>).add(task)
tasks[taskId] = task
taskDependencies[task] = dependencies
@@ -112,7 +112,9 @@ public class WtfTraceReader(path: String) : TraceReader<Job> {
}
// Create the entry iterator
- iterator = entries.values.sortedBy { it.submissionTime }.iterator()
+ iterator = workflows.map { (id, job) -> TraceEntry(job.uid, job.name, starts.getValue(id), job, job.metadata) }
+ .sortedBy { it.start }
+ .iterator()
}
override fun hasNext(): Boolean = iterator.hasNext()
@@ -120,20 +122,4 @@ public class WtfTraceReader(path: String) : TraceReader<Job> {
override fun next(): TraceEntry<Job> = iterator.next()
override fun close() {}
-
- /**
- * An unnamed user.
- */
- private object UnnamedUser : User {
- override val name: String = "<unnamed>"
- override val uid: UUID = UUID.randomUUID()
- }
-
- /**
- * An entry in the trace.
- */
- private data class TraceEntryImpl(
- override var submissionTime: Long,
- override val workload: Job
- ) : TraceEntry<Job>
}
diff --git a/simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/swf/SwfTraceReaderTest.kt b/simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/swf/SwfTraceReaderTest.kt
index 7e3d2623..e0e049cf 100644
--- a/simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/swf/SwfTraceReaderTest.kt
+++ b/simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/swf/SwfTraceReaderTest.kt
@@ -32,14 +32,14 @@ class SwfTraceReaderTest {
internal fun testParseSwf() {
val reader = SwfTraceReader(File(SwfTraceReaderTest::class.java.getResource("/swf_trace.txt").toURI()))
var entry = reader.next()
- assertEquals(0, entry.submissionTime)
+ assertEquals(0, entry.start)
// 1961 slices for waiting, 3 full and 1 partial running slices
- assertEquals(1965, (entry.workload.image.tags["workload"] as SimTraceWorkload).trace.toList().size)
+ assertEquals(1965, (entry.workload as SimTraceWorkload).trace.toList().size)
entry = reader.next()
- assertEquals(164472, entry.submissionTime)
+ assertEquals(164472, entry.start)
// 1188 slices for waiting, 0 full and 1 partial running slices
- assertEquals(1189, (entry.workload.image.tags["workload"] as SimTraceWorkload).trace.toList().size)
- assertEquals(0.25, (entry.workload.image.tags["workload"] as SimTraceWorkload).trace.toList().last().usage)
+ assertEquals(1189, (entry.workload as SimTraceWorkload).trace.toList().size)
+ assertEquals(0.25, (entry.workload as SimTraceWorkload).trace.toList().last().usage)
}
}
diff --git a/simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/wtf/WtfTraceReaderTest.kt b/simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/wtf/WtfTraceReaderTest.kt
index 58d96657..bcfa7553 100644
--- a/simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/wtf/WtfTraceReaderTest.kt
+++ b/simulator/opendc-format/src/test/kotlin/org/opendc/format/trace/wtf/WtfTraceReaderTest.kt
@@ -36,11 +36,11 @@ class WtfTraceReaderTest {
fun testParseWtf() {
val reader = WtfTraceReader("src/test/resources/wtf-trace")
var entry = reader.next()
- assertEquals(0, entry.submissionTime)
+ assertEquals(0, entry.start)
assertEquals(23, entry.workload.tasks.size)
entry = reader.next()
- assertEquals(333387, entry.submissionTime)
+ assertEquals(333387, entry.start)
assertEquals(23, entry.workload.tasks.size)
}
}