summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator/src
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java17
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java5
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt2
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt3
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt5
5 files changed, 20 insertions, 12 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
index 1fb9c6a2..eb8d3377 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
+++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
@@ -34,7 +34,6 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.Set;
import java.util.SplittableRandom;
import java.util.UUID;
@@ -594,15 +593,16 @@ public final class ComputeService implements AutoCloseable {
}
@NotNull
- public Flavor newFlavor(@NotNull String name, int cpuCount, long memorySize, @NotNull Map<String, ?> meta) {
+ public ServiceFlavor newFlavor(
+ @NotNull String name, int cpuCount, long memorySize, @NotNull Map<String, ?> meta) {
checkOpen();
final ComputeService service = this.service;
UUID uid = new UUID(service.clock.millis(), service.random.nextLong());
ServiceFlavor flavor = new ServiceFlavor(service, uid, name, cpuCount, memorySize, meta);
- service.flavorById.put(uid, flavor);
- service.flavors.add(flavor);
+ // service.flavorById.put(uid, flavor);
+ // service.flavors.add(flavor);
return flavor;
}
@@ -642,7 +642,7 @@ public final class ComputeService implements AutoCloseable {
@NotNull
public ServiceTask newTask(
@NotNull String name,
- @NotNull Flavor flavor,
+ @NotNull ServiceFlavor flavor,
@NotNull Workload workload,
@NotNull Map<String, ?> meta) {
checkOpen();
@@ -650,10 +650,11 @@ public final class ComputeService implements AutoCloseable {
final ComputeService service = this.service;
UUID uid = new UUID(service.clock.millis(), service.random.nextLong());
- final ServiceFlavor internalFlavor =
- Objects.requireNonNull(service.flavorById.get(flavor.getUid()), "Unknown flavor");
+ // final ServiceFlavor internalFlavor =
+ // Objects.requireNonNull(service.flavorById.get(flavor.getUid()), "Unknown flavor");
- ServiceTask task = new ServiceTask(service, uid, name, internalFlavor, workload, meta);
+ // ServiceTask task = new ServiceTask(service, uid, name, internalFlavor, workload, meta);
+ ServiceTask task = new ServiceTask(service, uid, name, flavor, workload, meta);
service.taskById.put(uid, task);
diff --git a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java
index 06d6535d..dac65d67 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java
+++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java
@@ -49,7 +49,7 @@ public class ServiceTask {
private final UUID uid;
private final String name;
- private final ServiceFlavor flavor;
+ private ServiceFlavor flavor;
public Workload workload;
private Map<String, ?> meta; // TODO: remove this
@@ -181,6 +181,9 @@ public class ServiceTask {
}
service.delete(this);
+ this.workload = null;
+ this.flavor = null;
+
this.setState(TaskState.DELETED);
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt
index cec664b6..e1ce0dbd 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt
@@ -45,6 +45,7 @@ public class ComputeMonitorProvisioningStep(
OutputFiles.POWER_SOURCE to true,
OutputFiles.BATTERY to true,
),
+ private val printFrequency: Int? = null,
) : ProvisioningStep {
override fun apply(ctx: ProvisioningContext): AutoCloseable {
val service =
@@ -59,6 +60,7 @@ public class ComputeMonitorProvisioningStep(
exportInterval,
startTime,
filesToExport,
+ printFrequency,
)
return metricReader
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt
index c72e8944..a18856f8 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt
@@ -68,8 +68,9 @@ public fun registerComputeMonitor(
OutputFiles.POWER_SOURCE to true,
OutputFiles.BATTERY to true,
),
+ printFrequency: Int? = null,
): ProvisioningStep {
- return ComputeMonitorProvisioningStep(serviceDomain, monitor, exportInterval, startTime, filesToExport)
+ return ComputeMonitorProvisioningStep(serviceDomain, monitor, exportInterval, startTime, filesToExport, printFrequency)
}
/**
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt
index c88b98ea..83899678 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt
@@ -64,6 +64,7 @@ public class ComputeMetricReader(
OutputFiles.BATTERY to true,
OutputFiles.SERVICE to true,
),
+ private val printFrequency: Int? = null,
) : AutoCloseable {
private val logger = KotlinLogging.logger {}
private val scope = CoroutineScope(dispatcher.asCoroutineDispatcher())
@@ -156,6 +157,7 @@ public class ComputeMetricReader(
}
for (task in this.service.tasksToRemove) {
+ this.taskTableReaders.remove(task)
task.delete()
}
this.service.clearTasksToRemove()
@@ -197,7 +199,7 @@ public class ComputeMetricReader(
monitor.record(this.serviceTableReader.copy())
}
- if (loggCounter >= 24) {
+ if (printFrequency != null && loggCounter % printFrequency == 0) {
var loggString = "\n\t\t\t\t\tMetrics after ${now.toEpochMilli() / 1000 / 60 / 60} hours:\n"
loggString += "\t\t\t\t\t\tTasks Total: ${this.serviceTableReader.tasksTotal}\n"
loggString += "\t\t\t\t\t\tTasks Active: ${this.serviceTableReader.tasksActive}\n"
@@ -206,7 +208,6 @@ public class ComputeMetricReader(
loggString += "\t\t\t\t\t\tTasks Terminated: ${this.serviceTableReader.tasksTerminated}\n"
this.logger.warn { loggString }
- loggCounter = 0
}
} catch (cause: Throwable) {
this.logger.warn(cause) { "Exporter threw an Exception" }