@Override public String toString() { return String.format("ServerStateNode(%s)", getServerName()); } }
@Override public int compareTo(final ServerStateNode other) { return getServerName().compareTo(other.getServerName()); }
@Override public int hashCode() { return getServerName().hashCode(); }
/** * This is an EXPENSIVE clone. Cloning though is the safest thing to do. * Can't let out original since it can change and at least the load balancer * wants to iterate this exported list. We need to synchronize on regions * since all access to this.servers is under a lock on this.regions. * @param forceByCluster a flag to force to aggregate the server-load to the cluster level * @return A clone of current assignments by table. */ public Map<TableName, Map<ServerName, List<RegionInfo>>> getAssignmentsByTable( final boolean forceByCluster) { if (!forceByCluster) return getAssignmentsByTable(); final HashMap<ServerName, List<RegionInfo>> ensemble = new HashMap<ServerName, List<RegionInfo>>(serverMap.size()); for (ServerStateNode serverNode: serverMap.values()) { ensemble.put(serverNode.getServerName(), serverNode.getRegionInfoList()); } // TODO: can we use Collections.singletonMap(HConstants.ENSEMBLE_TABLE_NAME, ensemble)? final Map<TableName, Map<ServerName, List<RegionInfo>>> result = new HashMap<TableName, Map<ServerName, List<RegionInfo>>>(1); result.put(HConstants.ENSEMBLE_TABLE_NAME, ensemble); return result; }
private boolean reportTransition(RegionStateNode regionNode, ServerStateNode serverNode, TransitionCode state, long seqId) throws IOException { ServerName serverName = serverNode.getServerName(); TransitRegionStateProcedure proc = regionNode.getProcedure(); if (proc == null) { return false; } proc.reportTransition(master.getMasterProcedureExecutor().getEnvironment(), regionNode, serverName, state, seqId); return true; }
private void checkOnlineRegionsReport(ServerStateNode serverNode, Set<byte[]> regionNames) { ServerName serverName = serverNode.getServerName(); for (byte[] regionName : regionNames) { if (!isRunning()) {