@InterfaceAudience.Private public class HBCKServerCrashProcedure extends ServerCrashProcedure
This version of SCP is for external invocation as part of fix-up (e.g. HBCK2's scheduleRecoveries); the super class is used during normal recovery operations. It is for the case where meta has references to 'Unknown Servers', servers that are in hbase:meta but not in live-server or dead-server lists; i.e. Master and hbase:meta content have deviated. It should never happen in normal running cluster but if we do drop accounting of servers, we need a means of fix-up. Eventually, as part of normal CatalogJanitor task, rather than just identify these 'Unknown Servers', it would make repair, queuing something like this HBCKSCP to do cleanup, reassigning them so Master and hbase:meta are aligned again.
NOTE that this SCP is costly to run; does a full scan of hbase:meta.
| Modifier and Type | Class and Description |
|---|---|
private static class |
HBCKServerCrashProcedure.UnknownServerVisitor
Visitor for hbase:meta that 'fixes' Unknown Server issues.
|
StateMachineProcedure.FlowProcedure.LockStateServerProcedureInterface.ServerOperationType| Modifier and Type | Field and Description |
|---|---|
private static org.slf4j.Logger |
LOG |
DEFAULT_MASTER_SCP_RETAIN_ASSIGNMENT, MASTER_SCP_RETAIN_ASSIGNMENTstateCountNO_PROC_ID, NO_TIMEOUT| Constructor and Description |
|---|
HBCKServerCrashProcedure()
Used when deserializing from a procedure store; we'll construct one of these then call
#deserializeStateData(InputStream).
|
HBCKServerCrashProcedure(MasterProcedureEnv env,
ServerName serverName,
boolean shouldSplitWal,
boolean carryingMeta) |
| Modifier and Type | Method and Description |
|---|---|
(package private) List<RegionInfo> |
getRegionsOnCrashedServer(MasterProcedureEnv env)
If no Regions found in Master context, then we will search hbase:meta for references to the
passed server.
|
protected boolean |
isMatchingRegionLocation(RegionStateNode rsn)
The RegionStateNode will not have a location if a confirm of an OPEN fails.
|
abort, acquireLock, deserializeStateData, executeFromState, getInitialState, getProcedureMetrics, getProcName, getServerName, getServerOperationType, getState, getStateId, hasMetaTableRegion, holdLock, isInRecoverMetaState, releaseLock, rollbackState, serializeStateData, shouldWaitClientAck, toStringClassDetails, updateProgress, updateProgressaddChildProcedure, execute, failIfAborted, getCurrentState, getCurrentStateId, getCycles, isEofState, isRollbackSupported, isYieldAfterExecutionStep, isYieldBeforeExecuteFromState, rollback, setNextState, toStringStateaddStackIndex, afterReplay, beforeReplay, bypass, compareTo, completionCleanup, doExecute, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, incChildrenLatch, isBypass, isFailed, isFinished, isInitializing, isLockedWhenLoading, isRunnable, isSuccess, isWaiting, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, skipPersistence, toString, toStringClass, toStringDetails, toStringSimpleSB, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, waitInitialized, wasExecutedprivate static final org.slf4j.Logger LOG
public HBCKServerCrashProcedure(MasterProcedureEnv env, ServerName serverName, boolean shouldSplitWal, boolean carryingMeta)
serverName - Name of the crashed server.shouldSplitWal - True if we should split WALs as part of crashed server processing.carryingMeta - True if carrying hbase:meta table region.public HBCKServerCrashProcedure()
List<RegionInfo> getRegionsOnCrashedServer(MasterProcedureEnv env)
getRegionsOnCrashedServer in class ServerCrashProcedureprotected boolean isMatchingRegionLocation(RegionStateNode rsn)
isMatchingRegionLocation in class ServerCrashProcedurersn matches that of this crashed server.Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.