> > > > Also, how do you think things would work in the context of KIP-179? Would > > the tool still invoke these requests or would it be done by the broker > > receiving the alterTopics/reassignPartitions protocol call? > > > > My gut feel is that the tool will still invoke these requests. But I have a > few questions to KIP-179 before I can answer this question. For example, is > AlterTopicsRequest request sent to controller only? If the new assignment > is not written in zookeeper, how is this information propagated to the new > controller if the previous controller dies after it receives > AlterTopicsRequest but before it sends LeaderAndIsrRequest? I can post > these questions in that discussion thread later. > > Let me answer here (though it's relevant to both KIPs):
As I originally envisaged it, KIP-179's support for reassigning partitions would have more-or-less taken the logic currently in the ReassignPartitionsCommand (that is, writing JSON to the ZkUtils.ReassignPartitionsPath) and put it behind a suitable network protocol API. Thus it wouldn't matter which broker received the protocol call: It would be acted on by brokers being notified of the change in the ZK path, just as currently. This would have kept the ReassignPartitionsCommand relatively simple, as it currently is. KIP-113 is obviously seeking to make more radical changes. The algorithm described for moving a replica to a particular directory on a different broker ( https://cwiki.apache.org/confluence/display/KAFKA/KIP-113%3A+Support+replicas+movement+between+log+directories#KIP-113:Supportreplicasmovementbetweenlogdirectories-2)Howtoreassignreplicabetweenlogdirectoriesacrossbrokers <https://cwiki.apache.org/confluence/display/KAFKA/KIP-113%3A+Support+replicas+movement+between+log+directories#KIP-113:Supportreplicasmovementbetweenlogdirectories-2%29Howtoreassignreplicabetweenlogdirectoriesacrossbrokers>) involves both sending AlterReplicaDirRequest to "the" broker (the receiving broker, I assume, but it's not spelled out), _as well as_ writing to the ZK node. This assumes the script (ReassignPartitionsCommand) has direct access to ZooKeeper, which is what KIP-179 is seeking to deprecate. It seems a waste of time to put the logic in the script as part of KIP-113, only for KIP-179 to have to move it back to the controller.