diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2025-11-13 19:44:43 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-13 19:44:43 +0100 |
| commit | 90d4369183a420689fb1d48687a77ec677572433 (patch) | |
| tree | 6b5bf9dbc1c55700620073a099ed22690e799526 /opendc-compute/opendc-compute-simulator/src/main/kotlin | |
| parent | 71f63618fb83c8e19ae48d5dc4a6e3927031cc10 (diff) | |
Updated the checkpointModel and OnUpdate of SimTraceWorkload (#380)
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src/main/kotlin')
4 files changed, 46 insertions, 0 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/FilterScheduler.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/FilterScheduler.kt index 3dab71b0..913060e5 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/FilterScheduler.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/FilterScheduler.kt @@ -22,6 +22,7 @@ package org.opendc.compute.simulator.scheduler +import org.opendc.compute.simulator.host.HostState import org.opendc.compute.simulator.scheduler.filters.HostFilter import org.opendc.compute.simulator.scheduler.weights.HostWeigher import org.opendc.compute.simulator.service.HostView @@ -101,6 +102,10 @@ public class FilterScheduler( } override fun updateHost(hostView: HostView) { + if (hostView.host.getState() == HostState.ERROR) { + return + } + if (hostView.host.isEmpty()) { setHostEmpty(hostView) } else { diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt index b88c75e6..96cb5f65 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt @@ -224,6 +224,21 @@ public object DfltTaskExportColumns { return@ExportColumn Binary.fromString(it.taskState!!.name) } + public val schedulingDelay: ExportColumn<TaskTableReader> = + ExportColumn( + field = Types.optional(INT64).named("scheduling_delay"), + ) { it.schedulingDelay } + + public val failureDelay: ExportColumn<TaskTableReader> = + ExportColumn( + field = Types.optional(INT64).named("failure_delay"), + ) { it.failureDelay } + + public val checkpointDelay: ExportColumn<TaskTableReader> = + ExportColumn( + field = Types.optional(INT64).named("checkpoint_delay"), + ) { it.checkpointDelay } + /** * The columns that are always included in the output file. */ diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt index 1f18ee50..cef3d8be 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt @@ -169,6 +169,12 @@ public interface TaskTableReader : Exportable { * The state of the task */ public val taskState: TaskState? + + public val schedulingDelay: Long + + public val failureDelay: Long + + public val checkpointDelay: Long } // Loads the default export fields for deserialization whenever this file is loaded. diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt index d4d5c7a6..be858e4f 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt @@ -82,6 +82,10 @@ public class TaskTableReaderImpl( _finishTime = table.finishTime _taskState = table.taskState + + _schedulingDelay = table.schedulingDelay + _failureDelay = table.failureDelay + _checkpointDelay = table.checkpointDelay } /** @@ -214,6 +218,18 @@ public class TaskTableReaderImpl( get() = _taskState private var _taskState: TaskState? = null + override val schedulingDelay: Long + get() = _schedulingDelay + private var _schedulingDelay: Long = 0L + + override val failureDelay: Long + get() = _failureDelay + private var _failureDelay: Long = 0L + + override val checkpointDelay: Long + get() = _checkpointDelay + private var _checkpointDelay: Long = 0L + /** * Record the next cycle. */ @@ -257,6 +273,10 @@ public class TaskTableReaderImpl( _scheduleTime = task.scheduledAt _finishTime = task.finishedAt + _schedulingDelay = task.schedulingDelay + _failureDelay = task.workload.failureDelay() + _checkpointDelay = task.workload.checkpointDelay() + if (gpuStats != null) { _gpuLimit = gpuStats.capacity _gpuDemand = gpuStats.demand |
