In LB there is randomAssignment(List<ServerName servers>) API which will be used by AM to assign
a region from a down RS. [This will be also used in other cases like call to assign() API from client]
I feel it would be better to pass the HRegionInfo also into this method. When the LB making a choice for a region
assignment, when one RS is down, it would be nice that the LB knows for which region it is doing this server selection.
While one RS down, we wanted the regions to get moved to other RSs but a set of regions stay together. We are having custom load balancer but with the current way of LB interface this is not possible. Another way is I can allow a random assignment of the regions at the RS down time. Later with a cluster balance I can balance the regions as I need. But this might make regions assign 1st to one RS and then again move to another. Also for some time period my business use case can not get satisfied.
Also I have seen some issue in JIRA which speaks about making sure that Root and META regions always sit in some specific RSs. With the current LB API this wont be possible in future.