public boolean isSystemTable() { return getTable().isSystemTable(); }
public Map<TableName, Map<ServerName, List<RegionInfo>>> getAssignmentsByTable() { final Map<TableName, Map<ServerName, List<RegionInfo>>> result = new HashMap<>(); for (RegionStateNode node: regionsMap.values()) { Map<ServerName, List<RegionInfo>> tableResult = result.get(node.getTable()); if (tableResult == null) { tableResult = new HashMap<ServerName, List<RegionInfo>>(); result.put(node.getTable(), tableResult); } final ServerName serverName = node.getRegionLocation(); if (serverName == null) { LOG.info("Skipping, no server for " + node); continue; } List<RegionInfo> serverResult = tableResult.get(serverName); if (serverResult == null) { serverResult = new ArrayList<RegionInfo>(); tableResult.put(serverName, serverResult); } serverResult.add(node.getRegionInfo()); } // Add online servers with no assignment for the table. for (Map<ServerName, List<RegionInfo>> table: result.values()) { for (ServerName svr : serverMap.keySet()) { if (!table.containsKey(svr)) { table.put(svr, new ArrayList<RegionInfo>()); } } } return result; }
public Map<RegionState.State, List<RegionInfo>> getRegionByStateOfTable(TableName tableName) { final State[] states = State.values(); final Map<RegionState.State, List<RegionInfo>> tableRegions = new HashMap<State, List<RegionInfo>>(states.length); for (int i = 0; i < states.length; ++i) { tableRegions.put(states[i], new ArrayList<RegionInfo>()); } for (RegionStateNode node: regionsMap.values()) { if (node.getTable().equals(tableName)) { tableRegions.get(node.getState()).add(node.getRegionInfo()); } } return tableRegions; }
ArrayList<RegionStateNode> getTableRegionStateNodes(final TableName tableName) { final ArrayList<RegionStateNode> regions = new ArrayList<RegionStateNode>(); for (RegionStateNode node: regionsMap.tailMap(tableName.getName()).values()) { if (!node.getTable().equals(tableName)) break; regions.add(node); } return regions; }
public String toDescriptiveString() { return String.format("%s, table=%s, region=%s", toShortString(), getTable(), getRegionInfo().getEncodedName()); }
ArrayList<RegionInfo> getTableRegionsInfo(final TableName tableName) { final ArrayList<RegionInfo> regions = new ArrayList<RegionInfo>(); for (RegionStateNode node: regionsMap.tailMap(tableName.getName()).values()) { if (!node.getTable().equals(tableName)) break; regions.add(node.getRegionInfo()); } return regions; }
ArrayList<RegionState> getTableRegionStates(final TableName tableName) { final ArrayList<RegionState> regions = new ArrayList<RegionState>(); for (RegionStateNode node: regionsMap.tailMap(tableName.getName()).values()) { if (!node.getTable().equals(tableName)) break; regions.add(node.toRegionState()); } return regions; }
private void preTransitCheck(RegionStateNode regionNode, RegionState.State[] expectedStates) throws HBaseIOException { if (regionNode.getProcedure() != null) { throw new HBaseIOException(regionNode + " is currently in transition"); } if (!regionNode.isInState(expectedStates)) { throw new DoNotRetryRegionException("Unexpected state for " + regionNode); } if (getTableStateManager().isTableState(regionNode.getTable(), TableState.State.DISABLING, TableState.State.DISABLED)) { throw new DoNotRetryIOException(regionNode.getTable() + " is disabled for " + regionNode); } }
public boolean isReplicaAvailableForRegion(final RegionInfo info) { // if the region info itself is a replica return true. if (!RegionReplicaUtil.isDefaultReplica(info)) { return true; } // iterate the regionsMap for the given region name. If there are replicas it should // list them in order. for (RegionStateNode node : regionsMap.tailMap(info.getRegionName()).values()) { if (!node.getTable().equals(info.getTable()) || !ServerRegionReplicaUtil.isReplicasForSameRegion(info, node.getRegionInfo())) { break; } else if (!RegionReplicaUtil.isDefaultReplica(node.getRegionInfo())) { // we have replicas return true; } } // we don have replicas return false; }
String state = request.getParameter("state"); if (table != null && state != null && !table.equals("null") && !state.equals("null")) { rit = rit.stream().filter(regionStateNode -> regionStateNode.getTable().getNameAsString().equals(table)) .filter(regionStateNode -> regionStateNode.getState().name().equals(state)) .collect(Collectors.toList());
regionNode.getProcedure().serverCrashed(env, regionNode, getServerName()); } else { if (env.getMasterServices().getTableStateManager().isTableState(regionNode.getTable(), TableState.State.DISABLING, TableState.State.DISABLED)) { continue;