private List<ServerName> findIdleServers(List<ServerName> servers) {
    return provider.getOnlineServersListWithPredicator(servers,
      metrics -> metrics.getRegionMetrics().isEmpty());
  }
Generates a bulk assignment plan to be used on cluster startup using a simple round-robin
assignment.
<p/>
Takes a list of all the regions and all the servers in the cluster and returns a map of each
server to the regions that it should be assigned.
<p/>
Currently implemented as a round-robin assignment. Same invariant as load balancing, all
servers holding floor(avg) or ceiling(avg). TODO: Use block locations from HDFS to place
regions with their blocks
@param regions all regions
@param servers all servers
@return map of server to the regions it should take, or emptyMap if no assignment is possible
        (ie. no servers)
hbase-balancer/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java