[
https://issues.apache.org/jira/browse/KAFKA-20998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matthias J. Sax reassigned KAFKA-20998:
---------------------------------------
Assignee: Gavin Wang
> Add HA task assignor
> --------------------
>
> Key: KAFKA-20998
> URL: https://issues.apache.org/jira/browse/KAFKA-20998
> Project: Kafka
> Issue Type: Sub-task
> Components: group-coordinator, streams
> Reporter: Matthias J. Sax
> Assignee: Gavin Wang
> Priority: Major
>
> The "classic" protocol offers two built-in assignors, "sticky" and
> "ha_assignor". So far, "streams" only offers the sticky assignor.
> KIP-1017 defines both "sticky" and "ha_assignor" as options, too, and we can
> now close this gap.
> However, we should amend the KIP slightly, and call the second built-in
> assignor "balanced" (instead of "ha_assignor" as currently specified on the
> KIP). The reason is, that high-availability features are delivered
> independently on the assignment strategy with "streams" protocol, ie, "warmup
> tasks" are inserted by the new refiner step, not the task assignor. Thus, the
> new assignor is not a 1:1 of the classic HA-assignor, but only need to
> deliver a different ("balanced") task assignment compare to sticky assignor.
> We can start with a 1:1 translation of he existing task assignment algorithm,
> but should use JMH benchmarks, and refine as needed, similar to what we did
> for the sticky assignor. Because task assignment is running inside the GC, we
> need to ensure that the task assignor performance is good, so it doesn't put
> too much load on the broker.
> The classic HA-assignor also supports rack-aware standby task assignment,
> which we should exclude in this ticket. We rather want so deliver rack-aware
> standby task assignment for both "sticky" and "balanced" assignor, and are
> tracking this in it's own sub-task.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)