make scheduler consider action concurrency >1 #5378
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Have the scheduling decision maker make container creation decisions using a throughput calculation that considers how many concurrent requests a container can take. This should exhibit the same throughput guarantees as is, but without unnecessary potential fan out of containers when an action has concurrency greater than one since the scheduler didn't consider it up until this point. There is no semantic change to behavior from this commit if action concurrency == 1.
Example: consider you have 100 incoming activations in the queue for an action with a concurrency of 10 with 1 existing container up currently processing 10 activations when the scheduling decision is made. The average duration is 10ms so the container throughput for this action due to the concurrency is really 100. So needed containers should already be met with just 1 container. However, currently the decision maker since it doesn't consider concurrency would create an additional 9 containers far exceeding the true needed number of containers.
Related issue and scope
My changes affect the following components
Types of changes
Checklist: