Matthias J. Sax created KAFKA-20998:
---------------------------------------

             Summary: 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


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)

Reply via email to