/** * @return Region name as a String for use in logging, etc. */ @Override public String getRegionNameAsString() { return RegionInfo.getRegionNameAsString(this, this.regionName); }
/** * Remove a favored node assignment * @param region region * @return the list of favored region server for this region based on the plan */ public List<ServerName> removeFavoredNodes(RegionInfo region) { return favoredNodesMap.remove(region.getRegionNameAsString()); }
/** * Update an assignment to the plan * @param region * @param servers */ public void updateFavoredNodesMap(RegionInfo region, List<ServerName> servers) { if (region == null || servers == null || servers.isEmpty()) { return; } this.favoredNodesMap.put(region.getRegionNameAsString(), servers); }
/** * A slower (but more easy-to-read) stringification */ public String toDescriptiveString() { long relTime = System.currentTimeMillis() - stamp; return hri.getRegionNameAsString() + " state=" + state + ", ts=" + new Date(stamp) + " (" + (relTime/1000) + "s ago)" + ", server=" + serverName; }
@Override protected void handleException(Throwable t) { LOG.warn("Fatal error occured while opening region {}, aborting...", regionInfo.getRegionNameAsString(), t); getServer().abort( "Failed to open region " + regionInfo.getRegionNameAsString() + " and can not recover", t); }
public void publishWriteTiming(ServerName serverName, RegionInfo region, ColumnFamilyDescriptor column, long msTime) { LOG.info("Write to {} on {} {} in {}ms", region.getRegionNameAsString(), serverName, column.getNameAsString(), msTime); }
@Override public String explainFailure() throws Exception { return regionInfo.getRegionNameAsString() + " is still on " + serverName; } });
@Override public String toString() { return hsa.toString() + ";" + hri.getRegionNameAsString(); } }
private void logException(int tries, Supplier<Stream<RegionRequest>> regionsSupplier, Throwable error, ServerName serverName) { if (tries > startLogErrorsCnt) { String regions = regionsSupplier.get().map(r -> "'" + r.loc.getRegion().getRegionNameAsString() + "'") .collect(Collectors.joining(",", "[", "]")); LOG.warn("Process batch for " + regions + " in " + tableName + " from " + serverName + " failed, tries=" + tries, error); } }
public void publishReadTiming(ServerName serverName, RegionInfo region, ColumnFamilyDescriptor column, long msTime) { LOG.info("Read from {} on {} {} in {}ms", region.getRegionNameAsString(), serverName, column.getNameAsString(), msTime); }
public void publishWriteFailure(ServerName serverName, RegionInfo region, ColumnFamilyDescriptor column, Exception e) { incWriteFailureCount(); LOG.error("Write to {} on {} {} failed", region.getRegionNameAsString(), serverName, column.getNameAsString(), e); }
public void publishReadFailure(ServerName serverName, RegionInfo region, ColumnFamilyDescriptor column, Exception e) { incReadFailureCount(); LOG.error("Read from {} on {} {} failed", region.getRegionNameAsString(), serverName, column.getNameAsString(), e); }
public String getScanDetailsWithId(long scannerId) { RegionScanner scanner = getScanner(scannerId); if (scanner == null) { return null; } StringBuilder builder = new StringBuilder(); builder.append("table: ").append(scanner.getRegionInfo().getTable().getNameAsString()); builder.append(" region: ").append(scanner.getRegionInfo().getRegionNameAsString()); return builder.toString(); }
/** * Returns the HSI a region info is on. */ ServerName findDeployedHSI(Map<ServerName, List<String>> mm, RegionInfo hri) { for (Map.Entry<ServerName,List <String>> e : mm.entrySet()) { if (e.getValue().contains(hri.getRegionNameAsString())) { return e.getKey(); } } return null; }
private void rejectIfInStandByState(HRegion region) throws DoNotRetryIOException { if (shouldRejectRequestsFromClient(region)) { throw new DoNotRetryIOException( region.getRegionInfo().getRegionNameAsString() + " is in STANDBY state."); } }
private void printOutRegions(final HRegionServer hrs, final String prefix) throws IOException { List<RegionInfo> regions = ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices()); for (RegionInfo region: regions) { LOG.info(prefix + region.getRegionNameAsString()); } }
private long getRegionSize(RegionInfo hri) { ServerName sn = masterServices.getAssignmentManager().getRegionStates(). getRegionServerOfRegion(hri); RegionMetrics regionLoad = masterServices.getServerManager().getLoad(sn). getRegionMetrics().get(hri.getRegionName()); if (regionLoad == null) { LOG.debug(hri.getRegionNameAsString() + " was not found in RegionsLoad"); return -1; } return (long) regionLoad.getStoreFileSize().get(Size.Unit.MEGABYTE); } }
private void checkRegionsAndRegionLoads(Collection<RegionInfo> regions, Collection<RegionMetrics> regionLoads) { assertEquals("No of regions and regionloads doesn't match", regions.size(), regionLoads.size()); Map<byte[], RegionMetrics> regionLoadMap = Maps.newTreeMap(Bytes.BYTES_COMPARATOR); for (RegionMetrics regionLoad : regionLoads) { regionLoadMap.put(regionLoad.getRegionName(), regionLoad); } for (RegionInfo info : regions) { assertTrue("Region not in regionLoadMap region:" + info.getRegionNameAsString() + " regionMap: " + regionLoadMap, regionLoadMap.containsKey(info.getRegionName())); } }
@Override protected void run() throws IOException { getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow); LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString()); // Execute the operation asynchronously submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow)); }
private void split(final RegionInfo hri, final HRegionServer server, final int regionCount) throws IOException, InterruptedException { admin.splitRegionAsync(hri.getRegionName(), null); for (int i = 0; cluster.getRegions(hri.getTable()).size() <= regionCount && i < 60; i++) { LOG.debug("Waiting on region " + hri.getRegionNameAsString() + " to split"); Thread.sleep(2000); } assertFalse("Waited too long for split", cluster.getRegions(hri.getTable()).size() <= regionCount); }