/** * Delete the region states. This is called by "DeleteTable" */ public void deleteTable(final TableName tableName) throws IOException { final ArrayList<RegionInfo> regions = regionStates.getTableRegionsInfo(tableName); regionStateStore.deleteRegions(regions); for (int i = 0; i < regions.size(); ++i) { final RegionInfo regionInfo = regions.get(i); // we expect the region to be offline regionStates.removeFromOfflineRegions(regionInfo); regionStates.deleteRegion(regionInfo); } }
/** * Delete regions from in-memory states * @param regionInfos regions to delete * @param env MasterProcedureEnv * @param regionReplication the number of region replications */ private void deleteRegionsFromInMemoryStates(List<RegionInfo> regionInfos, MasterProcedureEnv env, int regionReplication) { FavoredNodesManager fnm = env.getMasterServices().getFavoredNodesManager(); env.getAssignmentManager().getRegionStates().deleteRegions(regionInfos); env.getMasterServices().getServerManager().removeRegions(regionInfos); if (fnm != null) { fnm.deleteFavoredNodesForRegions(regionInfos); } // For region replicas if (regionReplication > 1) { for (RegionInfo regionInfo : regionInfos) { for (int i = 1; i < regionReplication; i++) { RegionInfo regionInfoForReplica = RegionReplicaUtil.getRegionInfoForReplica(regionInfo, i); env.getAssignmentManager().getRegionStates().deleteRegion(regionInfoForReplica); env.getMasterServices().getServerManager().removeRegion(regionInfoForReplica); if (fnm != null) { fnm.deleteFavoredNodesForRegion(regionInfoForReplica); } } } } }
static void removeNonDefaultReplicas(MasterProcedureEnv env, Stream<RegionInfo> regions, int regionReplication) { // Remove from in-memory states regions.flatMap(hri -> IntStream.range(1, regionReplication) .mapToObj(i -> RegionReplicaUtil.getRegionInfoForReplica(hri, i))).forEach(hri -> { env.getAssignmentManager().getRegionStates().deleteRegion(hri); env.getMasterServices().getServerManager().removeRegion(hri); FavoredNodesManager fnm = env.getMasterServices().getFavoredNodesManager(); if (fnm != null) { fnm.deleteFavoredNodesForRegions(Collections.singletonList(hri)); } }); }
/** * When called here, the merge has happened. The two merged regions have been * unassigned and the above markRegionClosed has been called on each so they have been * disassociated from a hosting Server. The merged region will be open after this call. The * merged regions are removed from hbase:meta below> Later they are deleted from the filesystem * by the catalog janitor running against hbase:meta. It notices when the merged region no * longer holds references to the old regions. */ public void markRegionAsMerged(final RegionInfo child, final ServerName serverName, final RegionInfo mother, final RegionInfo father) throws IOException { final RegionStateNode node = regionStates.getOrCreateRegionStateNode(child); node.setState(State.MERGED); regionStates.deleteRegion(mother); regionStates.deleteRegion(father); regionStateStore.mergeRegions(child, mother, father, serverName); if (shouldAssignFavoredNodes(child)) { ((FavoredNodesPromoter)getBalancer()). generateFavoredNodesForMergedRegion(child, mother, father); } }
if (am != null) { if (am.getRegionStates() != null) { am.getRegionStates().deleteRegion(getRegion());
if (regionInfo.getReplicaId() > (regionReplicaCount - 1)) { env.getAssignmentManager().getRegionStates().deleteRegion(regionInfo);
mergedRegion, regionA, regionB)); this.services.getAssignmentManager().getRegionStates().deleteRegion(regionA); this.services.getAssignmentManager().getRegionStates().deleteRegion(regionB); this.services.getServerManager().removeRegion(regionA); this.services.getServerManager().removeRegion(regionB);
@Override public ReportRegionStateTransitionResponse reportRegionStateTransition(RpcController c, ReportRegionStateTransitionRequest req) throws ServiceException { ReportRegionStateTransitionResponse resp = super.reportRegionStateTransition(c, req); if (enabled.get() && req.getTransition(0).getTransitionCode() == TransitionCode.READY_TO_MERGE && !resp.hasErrorMessage()) { RegionStates regionStates = myMaster.getAssignmentManager().getRegionStates(); for (RegionState regionState: regionStates.getRegionsStateInTransition()) { // Find the merging_new region and remove it if (regionState.isMergingNew()) { regionStates.deleteRegion(regionState.getRegion()); } } } return resp; } }
pe.submitProcedure(new GCRegionProcedure(pe.getEnvironment(), parent)); this.services.getAssignmentManager().getRegionStates().deleteRegion(parent); this.services.getServerManager().removeRegion(parent); return true;
@Override public ReportRegionStateTransitionResponse reportRegionStateTransition(RpcController c, ReportRegionStateTransitionRequest req) throws ServiceException { ReportRegionStateTransitionResponse resp = super.reportRegionStateTransition(c, req); if (enabled.get() && req.getTransition(0).getTransitionCode() == TransitionCode.READY_TO_MERGE && !resp.hasErrorMessage()) { RegionStates regionStates = myMaster.getAssignmentManager().getRegionStates(); for (RegionState regionState: regionStates.getRegionsStateInTransition()) { // Find the merging_new region and remove it if (regionState.isMergingNew()) { regionStates.deleteRegion(regionState.getRegion()); } } } return resp; } }