public synchronized void removeRegionFromTable(RegionInfo hri) throws IOException { String namespace = hri.getTable().getNamespaceAsString(); NamespaceTableAndRegionInfo nsInfo = nsStateCache.get(namespace); if (nsInfo != null) { nsInfo.decrementRegionCountForTable(hri.getTable(), 1); } else { throw new IOException("Namespace state found null for namespace : " + namespace); } } }
@Override public void preAssign(ObserverContext<MasterCoprocessorEnvironment> c, RegionInfo regionInfo) throws IOException { requirePermission(c, "assign", regionInfo.getTable(), null, null, Action.ADMIN); }
@Override public void preUnassign(ObserverContext<MasterCoprocessorEnvironment> c, RegionInfo regionInfo, boolean force) throws IOException { requirePermission(c, "unassign", regionInfo.getTable(), null, null, Action.ADMIN); }
/** @return true if this region is a meta region */ @Override public boolean isMetaRegion() { return tableName.equals(FIRST_META_REGIONINFO.getTable()); }
public FlushRegionCallable(ClusterConnection connection, RpcControllerFactory rpcControllerFactory, RegionInfo regionInfo, boolean writeFlushWalMarker) { this(connection, rpcControllerFactory, regionInfo.getTable(), regionInfo.getRegionName(), regionInfo.getStartKey(), writeFlushWalMarker); }
protected final Path getWALRegionDir(MasterProcedureEnv env, RegionInfo region) throws IOException { return FSUtils.getWALRegionDir(env.getMasterConfiguration(), region.getTable(), region.getEncodedName()); }
private int getTableSize(TableName tn, Map<RegionInfo,Long> regionSizes) { int tableSize = 0; for (Entry<RegionInfo,Long> entry : regionSizes.entrySet()) { RegionInfo regionInfo = entry.getKey(); long regionSize = entry.getValue(); if (tn.equals(regionInfo.getTable())) { tableSize += regionSize; } } return tableSize; } }
private int countRegionsForTable(TableName tn, Map<RegionInfo,Long> regionSizes) { int size = 0; for (RegionInfo regionInfo : regionSizes.keySet()) { if (tn.equals(regionInfo.getTable())) { size++; } } return size; }
private int getRegionReportsForTable(Map<RegionInfo,Long> reports, TableName tn) { int numReports = 0; for (Entry<RegionInfo,Long> entry : reports.entrySet()) { if (tn.equals(entry.getKey().getTable())) { numReports++; } } return numReports; } }
@Override protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException { if (getRegionInfo().getTable().equals(TABLE_NAME) && FAILED_OPEN.get() > 0) { FAILED_OPEN.decrementAndGet(); rsServices.abort("for testing", new Exception("Inject error for testing")); throw new IOException("Inject error for testing"); } } }
@Override public boolean visit(Result r) throws IOException { if (MetaTableAccessor.getRegionInfo(r).getTable().equals(table)) count.incrementAndGet(); return true; } };
private Map<RegionInfo,Long> getReportedSizesForTable(TableName tn) { HMaster master = TEST_UTIL.getMiniHBaseCluster().getMaster(); MasterQuotaManager quotaManager = master.getMasterQuotaManager(); Map<RegionInfo,Long> filteredRegionSizes = new HashMap<>(); for (Entry<RegionInfo,Long> entry : quotaManager.snapshotRegionSizes().entrySet()) { if (entry.getKey().getTable().equals(tn)) { filteredRegionSizes.put(entry.getKey(), entry.getValue()); } } return filteredRegionSizes; }
/** * @return the Region directory under WALRootDirectory * @throws IOException if there is an error getting WALRootDir */ @VisibleForTesting public Path getWALRegionDir() throws IOException { if (regionDir == null) { regionDir = FSUtils.getWALRegionDir(conf, getRegionInfo().getTable(), getRegionInfo().getEncodedName()); } return regionDir; }
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); }
private boolean shouldRejectRequestsFromClient(HRegion region) { TableName table = region.getRegionInfo().getTable(); ReplicationSourceService service = regionServer.getReplicationSourceService(); return service != null && service.getSyncReplicationPeerInfoProvider() .checkState(table, RejectRequestsFromClientStateChecker.get()); }
@Override public void preOpen(ObserverContext<RegionCoprocessorEnvironment> c) throws IOException { try { if (!c.getEnvironment().getRegion().getRegionInfo().getTable().isSystemTable()) { LOG.info("begin to sleep"); Thread.sleep(10000); LOG.info("finish sleep"); } } catch (Throwable t) { } }
@Override public void visitLogEntryBeforeWrite(WALKey logKey, WALEdit logEdit) { if (logKey.getTableName().getNameAsString().equalsIgnoreCase( this.regionInfo.getTable().getNameAsString()) && (!logEdit.isMetaEdit())) { isVisited = true; } }
private RegionInfoBuilder(RegionInfo regionInfo) { this.tableName = regionInfo.getTable(); this.startKey = regionInfo.getStartKey(); this.endKey = regionInfo.getEndKey(); this.offLine = regionInfo.isOffline(); this.split = regionInfo.isSplit(); this.regionId = regionInfo.getRegionId(); this.replicaId = regionInfo.getReplicaId(); this.regionName = regionInfo.getRegionName(); this.encodedName = regionInfo.getEncodedName(); }
@VisibleForTesting HRegionFileSystem getFileSystem(Connection connection) throws IOException { Admin admin = connection.getAdmin(); return HRegionFileSystem.openRegionFromFileSystem(admin.getConfiguration(), FSUtils.getCurrentFileSystem(admin.getConfiguration()), FSUtils.getTableDir(FSUtils.getRootDir(admin.getConfiguration()), region.getTable()), region, true); }
public static ServerName getServerHoldingRegion(final HBaseTestingUtility util, final RegionInfo hri) throws Exception { ServerName serverName = util.getMiniHBaseCluster().getServerHoldingRegion( hri.getTable(), hri.getRegionName()); ServerName amServerName = getMaster(util).getAssignmentManager().getRegionStates() .getRegionServerOfRegion(hri); // Make sure AM and MiniCluster agrees on the Server holding the region // and that the server is online. assertEquals(amServerName, serverName); assertEquals(true, getMaster(util).getServerManager().isServerOnline(serverName)); return serverName; }