...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "version": 2, "partitions": {"0": [1, 4, 2, 3] }, "addingReplicas": {"0": [4] } # <----- NEW "removingReplicas": {"0": [1] }, # <---- NEW } |
Because we are not making incompatible changes to the znode, we will not be bumping up the inter-broker protocol versionThe znode will now be at version 2 rather than 1. This change is backwards-compatible-- older brokers can read the new ZNode.
Controller Changes
When the controller starts up, it will load all of the currently active reassignments from the `topics/[topic]' znodes and the `admin/reassign_partitions` znode, with the latter taking precedence. This will not impose any additional startup overhead, because the controller already reads these znodes during start up.
The reason for having the `reassign_partitions` take precedence is that we cannot know for sure whether the Controller has taken action on that znode, so we allow it to overwrite the API-assigned reassignments in the event of a failover.
...