apache / apache/openwhisk

[discuss]Supporting heterogeneous invoker cluster

Open
#4,240 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
6.8k
Forks
1.2k
Avg merge
2d 14h
Merged PRs (30d)
2

Description

I think it is necessary to support heterogeneous invoker cluster.

For example, users might need GPU enabled host, and users might expect more powerful hosts or dedicated resources with higher prices. Or OW operator(public cloud) might want to deploy invoker in many different types of host machines to maximize the utilization of computing resources in the cloud. And the heterogenous invoker cluster requires heterogenous prewarm configuration for efficiency and flexbility as well.

There has several poinits of how to implement it
* Regarding `case class InvokerInstanceId`
```
case class InvokerInstanceId(val instance: Int,
resourceLevel: Option[String] = None, // extra field for current invoker, specify current invoker's resourceLevel
uniqueName: Option[String] = None,
displayedName: Option[String] = None,
val userMemory: ByteSize)
```
resourceLevel may have below value
```
normal: which means, have very common resource(the cpu, memory, gpu are not very strong)
cpuSensitive: which means, have very strong cpu power
memorySensitive: which means, have enough memory storage
gpuSensitive: which means, have strong gpu power
other values.....
```
And operator can modify resourceLevel via invoker HTTP API directly .

* action annotation
When user create/udpate action, can add `resourceRequirement` annotion(default value is `normal`) for the action.

* Provide the corresponding resourceLevel invokers for the action when this action is invoked.
When action is executed, if the action's `resourceRequirement` (needs more power resources) need to pay , openwhisk will judge current user whether pay for enough money, if already paid, the ShardingContainerPoolBalancer will shedule corresponding resourceLevel invokers which matches the action annotation:`resourceRequirement` to this action. if not paid, openwhisk will give him a tip that he didn't pay money, so this action can't be scheduled on high ResourceLevel invokers.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.