You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2019/01/28 06:14:40 UTC

[GitHub] ningyougang opened a new issue #4240: [discuss]Supporting heterogeneous invoker cluster

ningyougang opened a new issue #4240: [discuss]Supporting heterogeneous invoker cluster
URL: https://github.com/apache/incubator-openwhisk/issues/4240
 
 
   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 filed for inovoker
                                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, 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. 
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services