That code was completely rewritten in 0.89/0.90... its pretty dodgy so I'd
highly consider upgrading to 0.89 asap.
> hi, all
>
> I'm reading the code of RegionManager, I find in the following method
there
> is an situation when nRegionsToAssign <= nregions, the code only assigns 1
> region.
> Is this correct? Hbase version 0.20.4.
>
> private void assignRegionsToMultipleServers(final HServerLoad
> thisServersLoad,
> final Set<RegionState> regionsToAssign, final HServerInfo info,
> final ArrayList<HMsg> returnMsgs) {
> boolean isMetaAssign = false;
> for (RegionState s : regionsToAssign) {
> if (s.getRegionInfo().isMetaRegion())
> isMetaAssign = true;
> }
> int nRegionsToAssign = regionsToAssign.size();
> // Now many regions to assign this server.
> int nregions = regionsPerServer(nRegionsToAssign, thisServersLoad);
> LOG.debug("Assigning for " + info + ": total nregions to assign=" +
> nRegionsToAssign + ", nregions to reach balance=" + nregions +
> ", isMetaAssign=" + isMetaAssign);
> if (nRegionsToAssign <= nregions) {
> // I do not know whats supposed to happen in this case. Assign one.
> LOG.debug("Assigning one region only (playing it safe..)");
> assignRegions(regionsToAssign, 1, info, returnMsgs);
> } else {