You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note that each set/clear throttle will be an individual Kafka admin request, will may take a couple of seconds.
The problem is: there can be a lot of tasks in the backlog that is involving the same broker. It doesn't make senses to set/clear the throttling for the same broker again and again on every task execution batch. From local unit test running, it takes ~20 seconds for adminClient to handle each set/clear throttle request.
If we set the throttling for broker at the beginning of the execution, and only clean up the throttling after all tasks finished execution, that should speed up the rebalance.
Note: this is not the concurrency throttling, but the replication bytes throttling. This throttle is set by Cruise Control sending request to kafka brokers to cap the max replication bytes rate.
The text was updated successfully, but these errors were encountered:
@CCisGG When you have a moment, could you please take a look at this PR? I would greatly appreciate your insights and any feedback you might have. Thank you very much for your time!
Today, Cruise Control are setting/resetting replication rate throttles on a per-task base. E.g. it set throttling before a task executes:
cruise-control/cruise-control/src/main/java/com/linkedin/kafka/cruisecontrol/executor/Executor.java
Line 1415 in 155bf3c
Then clear the throttling for the broker after task finished and if there is no ongoing-task on the same broker:
cruise-control/cruise-control/src/main/java/com/linkedin/kafka/cruisecontrol/executor/Executor.java
Line 1437 in 155bf3c
Note that each set/clear throttle will be an individual Kafka admin request, will may take a couple of seconds.
The problem is: there can be a lot of tasks in the backlog that is involving the same broker. It doesn't make senses to set/clear the throttling for the same broker again and again on every task execution batch. From local unit test running, it takes ~20 seconds for adminClient to handle each set/clear throttle request.
If we set the throttling for broker at the beginning of the execution, and only clean up the throttling after all tasks finished execution, that should speed up the rebalance.
Note: this is not the concurrency throttling, but the replication bytes throttling. This throttle is set by Cruise Control sending request to kafka brokers to cap the max replication bytes rate.
The text was updated successfully, but these errors were encountered: