diff options
| author | Soufiane Jounaid <soufianejounaid@gmail.com> | 2021-05-09 15:45:32 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-05-09 16:13:43 +0200 |
| commit | 1387e68a48a00758ae2634de6eb81944d565aec4 (patch) | |
| tree | 282eb00897551320fea627ab934ff4e5bc194543 /opendc-experiments/opendc-experiments-serverless20 | |
| parent | 4f1c48bf32ded0ce1277b6483bdac7ec489f055f (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')
| -rw-r--r-- | opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt | 4 |
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 { |
