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

Chris Egerton updated KAFKA-13763:
----------------------------------
    Description: 
The 
[tests|https://github.com/apache/kafka/blob/dcd09de1ed84b43f269eb32fc2baf589a791d468/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed/IncrementalCooperativeAssignorTest.java]
 for the {{IncrementalCooperativeAssignor}} class provide a moderate level of 
coverage and cover some non-trivial cases, but there are some areas for 
improvement that will allow us to iterate on the assignment logic for Kafka 
Connect faster and with greater confidence.

These improvements include:
 * Adding reusable utility methods to assert that a cluster's assignment is 
*balanced* (the difference in the number of connectors and tasks assigned to 
any two workers is at most one) and *complete* (all connectors and tasks are 
assigned to a worker)
 * Removing the existing 
[assertAssignment|https://github.com/apache/kafka/blob/dcd09de1ed84b43f269eb32fc2baf589a791d468/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed/IncrementalCooperativeAssignorTest.java#L1373-L1405]
 methods and replacing them with a more fine-grained alternative that allows 
for more granular assertions about the number of tasks/connectors 
assigned/revoked from each worker during a round of rebalance, instead of the 
total for the entire cluster
 * Adding a reusable utility method to assert the current distribution of 
connectors and tasks across the cluster
 * Decomposing large portions of repeated code for simulating a round of 
rebalancing into a reusable utility method
 * Renaming variable names to improve accuracy/readability (the 
{{expectedMemberConfigs}} field, for example, is pretty poorly named)

But other improvements may be added in a pull request that addresses the above 
as they come up.

  was:
The 
[tests|https://github.com/apache/kafka/blob/dcd09de1ed84b43f269eb32fc2baf589a791d468/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed/IncrementalCooperativeAssignorTest.java]
 for the {{IncrementalCooperativeAssignor}} class provide a moderate level of 
coverage and cover some non-trivial cases, but there are some areas for 
improvement that will allow us to iterate on the assignment logic for Kafka 
Connect faster and with greater confidence.

These improvements include:
 * Adding reusable utility methods to assert that a cluster's assignment is 
*balanced* (the difference in the number of connectors and tasks assigned to 
any two workers is at most one) and *complete* (all connectors and tasks are 
assigned to a worker)
 * Removing the existing 
[assertAssignment|https://github.com/apache/kafka/blob/dcd09de1ed84b43f269eb32fc2baf589a791d468/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed/IncrementalCooperativeAssignorTest.java#L1373-L1405]
 methods and replacing them with a more fine-grained alternative that allows 
for more granular assertions about the number of tasks/connectors 
assigned/revoked from each worker during a round of rebalance, instead of the 
total for the entire cluster
 * Adding a reusable utility method to assert the current distribution of 
connectors and tasks across the cluster
 * Decomposing large portions of repeated code for simulating a round of 
rebalancing into a reusable utility method
 * Renaming variable names to improve accuracy/readability (the 
{{expectedMemberConfigs}} field, for example, is pretty poorly named)


> Improve unit testing coverage for IncrementalCooperativeAssignor
> ----------------------------------------------------------------
>
>                 Key: KAFKA-13763
>                 URL: https://issues.apache.org/jira/browse/KAFKA-13763
>             Project: Kafka
>          Issue Type: Improvement
>          Components: KafkaConnect
>            Reporter: Chris Egerton
>            Assignee: Chris Egerton
>            Priority: Minor
>
> The 
> [tests|https://github.com/apache/kafka/blob/dcd09de1ed84b43f269eb32fc2baf589a791d468/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed/IncrementalCooperativeAssignorTest.java]
>  for the {{IncrementalCooperativeAssignor}} class provide a moderate level of 
> coverage and cover some non-trivial cases, but there are some areas for 
> improvement that will allow us to iterate on the assignment logic for Kafka 
> Connect faster and with greater confidence.
> These improvements include:
>  * Adding reusable utility methods to assert that a cluster's assignment is 
> *balanced* (the difference in the number of connectors and tasks assigned to 
> any two workers is at most one) and *complete* (all connectors and tasks are 
> assigned to a worker)
>  * Removing the existing 
> [assertAssignment|https://github.com/apache/kafka/blob/dcd09de1ed84b43f269eb32fc2baf589a791d468/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed/IncrementalCooperativeAssignorTest.java#L1373-L1405]
>  methods and replacing them with a more fine-grained alternative that allows 
> for more granular assertions about the number of tasks/connectors 
> assigned/revoked from each worker during a round of rebalance, instead of the 
> total for the entire cluster
>  * Adding a reusable utility method to assert the current distribution of 
> connectors and tasks across the cluster
>  * Decomposing large portions of repeated code for simulating a round of 
> rebalancing into a reusable utility method
>  * Renaming variable names to improve accuracy/readability (the 
> {{expectedMemberConfigs}} field, for example, is pretty poorly named)
> But other improvements may be added in a pull request that addresses the 
> above as they come up.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to