...
The controller uses the ClusterDescriber
interface to let the replica placer determine the usable brokers and the default log directory partitions should be placed on. This interface has 2 methods whose behavior will be updated:
- usableBrokers()
: This method will only return brokers that have at least one log directory not cordoned.
- defaultDir()
: This method will not return the Uuid of a log directory that is not cordoned.
In the assignment the controller computes, the target log directory is only a hint. As mentioned in the motivation section, brokers actually pick actual log directory to use. Even if a broker does not pick the directory hinted by the controller, only a log directory not currently cordoned will be selected.
...