/** * @param region * @return The current RegionState */ private RegionState addToRegionsInTransition(final HRegionInfo region) { return addToRegionsInTransition(region, false); } /**
/** * Caller must hold lock on <code>this.regions</code>. * @param serverName * @param encodedName * @return The instance of RegionState that was added to RIT or null if error. */ private RegionState findHRegionInfoThenAddToRIT(final ServerName serverName, final String encodedName) { HRegionInfo hri = findHRegionInfo(serverName, encodedName); if (hri == null) { LOG.warn("Region " + encodedName + " not found on server " + serverName + "; failed processing"); return null; } // Add to regions in transition, then update state to SPLITTING. return addToRegionsInTransition(hri); }
/** * @param region * @param setOfflineInZK * @param forceNewPlan * @param hijack * - true new assignment is needed, false otherwise */ public void assign(HRegionInfo region, boolean setOfflineInZK, boolean forceNewPlan, boolean hijack) { // If hijack is true do not call disableRegionIfInRIT as // we have not yet moved the znode to OFFLINE state. if (!hijack && isDisabledorDisablingRegionInRIT(region)) { return; } if (this.serverManager.isClusterShutdown()) { LOG.info("Cluster shutdown is set; skipping assign of " + region.getRegionNameAsString()); return; } RegionState state = addToRegionsInTransition(region, hijack); synchronized (state) { assign(region, state, setOfflineInZK, forceNewPlan, hijack); } }