apache / apache/openwhisk

Change the load balancer to reduce invoker activation queueing

Open
#3,755 2 comments 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

## Problem statement:

The current workflow of queueing activations to per-invoker topics has some limitations like:
early routing: invokers are all treated the same, and once an invoker is selected to process an activation, it is queued for that invoker, even though a different invoker may end up having more capacity to process it earlier.

## Suggested solution:

Provide a unified overflow topic and route an overflowed activation (all invokers reach execution capacity) to an invoker ONLY after an invoker has become available to process the activation.
This provides benefits like: queuing behavior is predictable ("waiting for execution", instead of "waiting for capacity" + "waiting for execution") since invokers won't be subjected to loads they cannot handle, and scheduling activations to a specific invoker will be more fair.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the current workflow that queues activations to per-invoker topics and how the load balancer selects invokers. Then examine where a unified overflow topic could be integrated. Done means overflowed activations wait for an invoker to become available rather than being queued for an unavailable invoker, with fairer and more predictable scheduling.

Written by the indexing model from the issue text.

Assessment

Domain
backend, cloud, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.