private void enableCatalogTables(String catalogTableName) { if (!this.assignmentManager.getZKTable().isEnabledTable(catalogTableName)) { this.assignmentManager.setEnabledTable(catalogTableName); } }
private void enableTableIfNotDisabledOrDisablingOrEnabling(boolean disabled, boolean disablingOrEnabling, String tableName) { if (!disabled && !disablingOrEnabling && !getZKTable().isEnabledTable(tableName)) { setEnabledTable(tableName); } }
private boolean checkIfRegionsBelongsToEnabling(HRegionInfo regionInfo) { String tableName = regionInfo.getTableNameAsString(); return getZKTable().isEnablingTable(tableName); }
private boolean checkIfRegionBelongsToDisabling(HRegionInfo regionInfo) { String tableName = regionInfo.getTableNameAsString(); return getZKTable().isDisablingTable(tableName); }
private boolean checkIfRegionBelongsToDisabled(HRegionInfo regionInfo) { String tableName = regionInfo.getTableNameAsString(); return getZKTable().isDisabledTable(tableName); }
private void handleDisableTable() throws IOException, KeeperException { this.assignmentManager.getZKTable().setDisablingTable(this.tableNameStr); boolean done = false; while (true) { if (done) this.assignmentManager.getZKTable().setDisabledTable(this.tableNameStr); LOG.info("Disabled table is done=" + done);
this.assignmentManager.getZKTable().setEnablingTable(this.tableNameStr); boolean done = false; if (done) this.assignmentManager.getZKTable().setEnabledTable( this.tableNameStr); LOG.info("Enabled table is done=" + done);
if (!this.assignmentManager.getZKTable().checkDisabledAndSetEnablingTable (this.tableNameStr)) { LOG.info("Table " + tableNameStr + " isn't disabled; skipping enable");
@Override public void process() { try { LOG.info("Handling table operation " + eventType + " on table " + Bytes.toString(tableName)); List<HRegionInfo> hris = MetaReader.getTableRegions(this.server.getCatalogTracker(), tableName); handleTableOperation(hris); if (eventType.isOnlineSchemaChangeSupported() && this.masterServices. getAssignmentManager().getZKTable(). isEnabledTable(Bytes.toString(tableName))) { if (reOpenAllRegions(hris)) { LOG.info("Completed table operation " + eventType + " on table " + Bytes.toString(tableName)); } else { LOG.warn("Error on reopening the regions"); } } } catch (IOException e) { LOG.error("Error manipulating table " + Bytes.toString(tableName), e); } catch (KeeperException e) { LOG.error("Error manipulating table " + Bytes.toString(tableName), e); } finally { notifyEventBeingHandled(); } }
if (!this.assignmentManager.getZKTable().checkEnabledAndSetDisablingTable (this.tableNameStr)) { LOG.info("Table " + tableNameStr + " isn't enabled; skipping disable");
private void makeRegionOnline(RegionState rs, HRegionInfo regionInfo) { regionOnline(regionInfo, rs.serverName); LOG.info("The master has opened the region " + regionInfo.getRegionNameAsString() + " that was online on " + rs.serverName); if (this.getZKTable().isDisablingOrDisabledTable( regionInfo.getTableNameAsString())) { LOG.debug("Opened region " + regionInfo.getRegionNameAsString() + " but " + "this table is disabled, triggering close of region"); unassign(regionInfo); } }
@Override public void checkTableModifiable(final byte [] tableName) throws IOException { String tableNameStr = Bytes.toString(tableName); if (isCatalogTable(tableName)) { throw new IOException("Can't modify catalog tables"); } if (!MetaReader.tableExists(getCatalogTracker(), tableNameStr)) { throw new TableNotFoundException(tableNameStr); } if (!getAssignmentManager().getZKTable(). isDisabledTable(Bytes.toString(tableName))) { throw new TableNotDisabledException(tableName); } }
assignmentManager.getZKTable().setEnabledTable(tableName); } catch (KeeperException e) { throw new IOException("Unable to ensure that " + tableName + " will be" +
if (!this.assignmentManager.getZKTable().checkAndSetEnablingTable(tableName)) throw new TableExistsException(tableName); } catch (KeeperException e) {
private List<HRegionInfo> checkForDisablingOrDisabledTables(Set<HRegionInfo> regionsFromRIT, List<HRegionInfo> toAssign, RegionState rit, AssignmentManager assignmentManager) { if (rit == null) { return toAssign; } if (!rit.isClosing() && !rit.isPendingClose()) { return toAssign; } if (!assignmentManager.getZKTable().isDisablingOrDisabledTable( rit.getRegion().getTableNameAsString())) { return toAssign; } HRegionInfo hri = rit.getRegion(); AssignmentManager am = assignmentManager; am.deleteClosingOrClosedNode(hri); am.regionOffline(hri); // To avoid region assignment if table is in disabling or disabled state. toAssign.remove(hri); regionsFromRIT.remove(hri); return toAssign; }
am.getZKTable().setDeletedTable(Bytes.toString(tableName));
@Override public void process() { LOG.debug("Handling CLOSED event for " + regionInfo.getEncodedName()); // Check if this table is being disabled or not if (this.assignmentManager.getZKTable(). isDisablingOrDisabledTable(this.regionInfo.getTableNameAsString())) { assignmentManager.offlineDisabledRegion(regionInfo); return; } // ZK Node is in CLOSED state, assign it. // TODO: Should we remove the region from RIT too? We don't? Makes for // a 'forcing' log message when we go to update state from CLOSED to OFFLINE assignmentManager.setOffline(regionInfo); // This below has to do w/ online enable/disable of a table assignmentManager.removeClosedRegion(regionInfo); assignmentManager.assign(regionInfo, true); } }
AssignmentManager assignmentManager, CatalogTracker catalogTracker) throws IOException { boolean tablePresent = assignmentManager.getZKTable().isTablePresent( hri.getTableNameAsString()); if (!tablePresent) { boolean disabled = assignmentManager.getZKTable().isDisabledTable( hri.getTableNameAsString()); if (disabled){ return false; boolean disabling = assignmentManager.getZKTable().isDisablingTable( hri.getTableNameAsString()); if (disabling) {
@Override public void process() { // Code to defend against case where we get SPLIT before region open // processing completes; temporary till we make SPLITs go via zk -- 0.92. RegionState regionState = this.assignmentManager.isRegionInTransition(regionInfo); boolean openedNodeDeleted = false; if (regionState != null && regionState.getState().equals(RegionState.State.OPEN)) { openedNodeDeleted = deleteOpenedNode(expectedVersion); if (!openedNodeDeleted) { LOG.error("The znode of region " + regionInfo.getRegionNameAsString() + " could not be deleted."); } } else { LOG.warn("Skipping the onlining of " + regionInfo.getRegionNameAsString() + " because regions is NOT in RIT -- presuming this is because it SPLIT"); } if (!openedNodeDeleted) { if (this.assignmentManager.getZKTable().isDisablingOrDisabledTable( regionInfo.getTableNameAsString())) { debugLog(regionInfo, "Opened region " + regionInfo.getRegionNameAsString() + " but " + "this table is disabled, triggering close of region"); assignmentManager.unassign(regionInfo); } } }
if (master.getAssignmentManager().getZKTable().isEnabledTable(fsSnapshot.getTable())) { throw new UnsupportedOperationException("Table '" + fsSnapshot.getTable() + "' must be disabled in order to perform a restore operation.");