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 2017/12/11 18:07:18 UTC

[GitHub] markusthoemmes commented on a change in pull request #3092: only consider healthy invokers when scheduling

markusthoemmes commented on a change in pull request #3092: only consider healthy invokers when scheduling
URL: https://github.com/apache/incubator-openwhisk/pull/3092#discussion_r156152383
 
 

 ##########
 File path: core/controller/src/main/scala/whisk/core/loadBalancer/LoadBalancerService.scala
 ##########
 @@ -324,7 +324,9 @@ class LoadBalancerService(config: WhiskConfig, instance: InstanceId, entityStore
 
     loadBalancerData.activationCountPerInvoker.flatMap { currentActivations =>
       allInvokers.flatMap { invokers =>
-        val invokersToUse = if (action.exec.pull) blackboxInvokers(invokers) else managedInvokers(invokers)
+        val healthyInvokers = invokers.filter(_._2 == Healthy)
+        val invokersToUse =
+          if (action.exec.pull) blackboxInvokers(healthyInvokers) else managedInvokers(healthyInvokers)
 
 Review comment:
   Keeping Unhealthy/Down invokers in that list is deliberate:
   
   The loadbalancer heavily relies on the ordering of invokers. If You shrink/grow this list continually (for example by an invoker going online/offline all the time) you completely destroy its heuristics, resulting in super bad scheduling behavior if you have a system with some invokers in a flipping state.
   
   What's the motivation to do this change?

----------------------------------------------------------------
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