summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-serverless20/src/main
diff options
context:
space:
mode:
authorSoufiane Jounaid <soufianejounaid@gmail.com>2021-05-09 15:45:32 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-09 16:13:43 +0200
commit1387e68a48a00758ae2634de6eb81944d565aec4 (patch)
tree282eb00897551320fea627ab934ff4e5bc194543 /opendc-experiments/opendc-experiments-serverless20/src/main
parent4f1c48bf32ded0ce1277b6483bdac7ec489f055f (diff)
serverless: Add support for custom termination policies
This change adds support for custom termination policies for function instances. This allows the user to build different strategies for downscaling function instances after they become idle.
Diffstat (limited to 'opendc-experiments/opendc-experiments-serverless20/src/main')
-rw-r--r--opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt4
1 files changed, 3 insertions, 1 deletions
diff --git a/opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt b/opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt
index 3ff01e39..516bcc3e 100644
--- a/opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt
+++ b/opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt
@@ -34,6 +34,7 @@ import org.opendc.experiments.serverless.trace.ServerlessTraceReader
import org.opendc.harness.dsl.Experiment
import org.opendc.harness.dsl.anyOf
import org.opendc.serverless.service.ServerlessService
+import org.opendc.serverless.service.autoscaler.FunctionTerminationPolicyFixed
import org.opendc.serverless.service.router.RandomRoutingPolicy
import org.opendc.serverless.simulator.SimFunctionDeployer
import org.opendc.serverless.simulator.delay.ColdStartModel
@@ -83,7 +84,8 @@ public class ServerlessExperiment : Experiment("Serverless") {
val traceById = trace.associateBy { it.id }
val delayInjector = StochasticDelayInjector(coldStartModel, Random())
val deployer = SimFunctionDeployer(clock, this, createMachineModel(), delayInjector) { FunctionTraceWorkload(traceById.getValue(it.name)) }
- val service = ServerlessService(coroutineContext, clock, meterProvider.get("opendc-serverless"), deployer, routingPolicy)
+ val service =
+ ServerlessService(coroutineContext, clock, meterProvider.get("opendc-serverless"), deployer, routingPolicy, FunctionTerminationPolicyFixed(coroutineContext, clock, timeout = 10 * 60 * 1000))
val client = service.newClient()
coroutineScope {