Skip to content

Rethink inactivity timeout under high load #2761

Description

@tillrohrmann

At the moment, the inactivity timeout defines when a bi-directional streaming invocation w/o activity is suspended. The current default value is 60s. The idea is to keep the invocation running in case that a completion arrives that enables the invocation for make further progress. This works fine as long as the invoker has enough capacity to invoke other invocations. If, however, the concurrency limit is set and the system is under load it might also lead to a slow down of invocation processing. See #2758 (comment) for more details.

Under load there is the tension between keeping an invocation running and occupying the slot for making faster progress once a completion arrives vs. freeing its slot and letting waiting invocations make progress. One idea to avoid occupying slots w/o making progress is to suspend in-flight invocations whenever a new invocations arrives that does not get a free slot.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions