Based on the offline discussion, one potential improvement to the chooseRandomWithStorageType added in
HDFS-11482 is that, currently given a node, the method iterates all its children to sum up the number of candidate datanodes. Since datanode status change is much less frequent than block placement request. It is more efficient to get rid of this iteration check, by probably maintaining another disk type counter map. This JIRA tracks (but not limited) this optimization.