Hi -
I’ve been discussing a bit with a few about optimizing the queueing that goes 
on ahead of invokers so that things behave more simply and predictable.

In short: Instead of scheduling activations to an invoker on receipt, do the 
following:
- execute the activation "immediately" if capacity is available
- provide a single overflow topic for activations that cannot execute 
“immediately"
- schedule from the overflow topic when capacity is available

(BTW “Immediately” means: still queued via existing invoker topics, but ONLY 
gets queued there in the case that the invoker is not fully loaded, and 
therefore should execute it “very soon")

Later: it would also be good to provide more container state data from invoker 
to controller, to get better scheduling options - e.g. if some invokers can 
handle running more containers than other invokers, that info can be used to 
avoid over/under-loading the invokers (currently we assume each invoker can 
handle 16 activations, I think)

I put a wiki page proposal here: 
https://cwiki.apache.org/confluence/display/OPENWHISK/Invoker+Activation+Queueing+Change

WDYT?

Thanks
Tyson

Reply via email to