[ 
https://issues.apache.org/jira/browse/KAFKA-21167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthias J. Sax updated KAFKA-21167:
------------------------------------
    Component/s: group-coordinator
                 streams

> StickyTaskAssignor can overlook local state when a member reaches quota
> -----------------------------------------------------------------------
>
>                 Key: KAFKA-21167
>                 URL: https://issues.apache.org/jira/browse/KAFKA-21167
>             Project: Kafka
>          Issue Type: Bug
>          Components: group-coordinator, streams
>            Reporter: sanghyeok An
>            Assignee: sanghyeok An
>            Priority: Minor
>              Labels: streams
>
> The broker-side StickyTaskAssignor selects a previous-state candidate before 
> checking its quota. A member at quota can prevent another eligible member in 
> the same process from being selected, causing unnecessary state restoration.
>  
> There are three stateful tasks and five members, giving an active task quota 
> of one per member:
>  * Process P has two members: p1 previously owned task 0, and p2 had no 
> active tasks. Both report local state for task 2.
>  * Process Q has three members: q1 previously owned task 1, while q2 and q3 
> had no active tasks. None report local state for task 2.
> After tasks 0 and 1 are retained, p1 is at quota while p2 remains available. 
> If p1 is considered first, p2 cannot replace it because both members have the 
> same process load. The subsequent quota check rejects p1 without trying p2.
> Task 2 then falls back to load-based assignment, which selects Q because its 
> load is 1/3, compared with P's 1/2 even if p2 has local state for task 2.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to