public class SplitTableRegionProcedure extends AbstractStateMachineRegionProcedure<SplitTableRegionState>
Throws exception on construction if determines context hostile to spllt (cluster going down or master is shutting down or table is disabled).
TableProcedureInterface.TableOperationType| Constructor and Description |
|---|
SplitTableRegionProcedure() |
SplitTableRegionProcedure(MasterProcedureEnv env,
RegionInfo regionToSplit,
byte[] splitRow) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
abort(MasterProcedureEnv env) |
void |
createDaughterRegions(MasterProcedureEnv env)
Create daughter regions
|
protected void |
deserializeStateData(ProcedureStateSerializer serializer) |
protected Flow |
executeFromState(MasterProcedureEnv env,
SplitTableRegionState state) |
protected SplitTableRegionState |
getInitialState() |
protected ProcedureMetrics |
getProcedureMetrics(MasterProcedureEnv env) |
protected SplitTableRegionState |
getState(int stateId) |
protected int |
getStateId(SplitTableRegionState state) |
TableProcedureInterface.TableOperationType |
getTableOperationType()
Given an operation type we can take decisions about what to do with pending operations.
|
protected boolean |
isRollbackSupported(SplitTableRegionState state) |
boolean |
prepareSplitRegion(MasterProcedureEnv env)
Prepare to Split region.
|
protected void |
rollbackState(MasterProcedureEnv env,
SplitTableRegionState state)
To rollback
SplitTableRegionProcedure, an AssignProcedure is asynchronously
submitted for parent region to be split (rollback doesn't wait on the completion of the
AssignProcedure) . |
protected void |
serializeStateData(ProcedureStateSerializer serializer) |
void |
toStringClassDetails(java.lang.StringBuilder sb) |
acquireLock, checkTableModifiable, getRegion, getTableName, hasLock, holdLock, releaseLock, setFailure, setRegioncheckOnline, getRegionDir, getUser, preflightChecks, releaseSyncLatch, setUserpublic SplitTableRegionProcedure()
public SplitTableRegionProcedure(MasterProcedureEnv env, RegionInfo regionToSplit, byte[] splitRow) throws java.io.IOException
java.io.IOExceptionprotected Flow executeFromState(MasterProcedureEnv env, SplitTableRegionState state) throws java.lang.InterruptedException
java.lang.InterruptedExceptionprotected void rollbackState(MasterProcedureEnv env, SplitTableRegionState state) throws java.io.IOException, java.lang.InterruptedException
SplitTableRegionProcedure, an AssignProcedure is asynchronously
submitted for parent region to be split (rollback doesn't wait on the completion of the
AssignProcedure) . This can be improved by changing rollback() to support sub-procedures.
See HBASE-19851 for details.java.io.IOExceptionjava.lang.InterruptedExceptionprotected boolean isRollbackSupported(SplitTableRegionState state)
protected SplitTableRegionState getState(int stateId)
protected int getStateId(SplitTableRegionState state)
protected SplitTableRegionState getInitialState()
protected void serializeStateData(ProcedureStateSerializer serializer)
throws java.io.IOException
serializeStateData in class AbstractStateMachineRegionProcedure<SplitTableRegionState>java.io.IOExceptionprotected void deserializeStateData(ProcedureStateSerializer serializer)
throws java.io.IOException
deserializeStateData in class AbstractStateMachineRegionProcedure<SplitTableRegionState>java.io.IOExceptionpublic void toStringClassDetails(java.lang.StringBuilder sb)
toStringClassDetails in class AbstractStateMachineRegionProcedure<SplitTableRegionState>public TableProcedureInterface.TableOperationType getTableOperationType()
TableProcedureInterfacegetTableOperationType in interface TableProcedureInterfacegetTableOperationType in class AbstractStateMachineRegionProcedure<SplitTableRegionState>protected ProcedureMetrics getProcedureMetrics(MasterProcedureEnv env)
public boolean prepareSplitRegion(MasterProcedureEnv env) throws java.io.IOException
env - MasterProcedureEnvjava.io.IOExceptionpublic void createDaughterRegions(MasterProcedureEnv env) throws java.io.IOException
env - MasterProcedureEnvjava.io.IOExceptionprotected boolean abort(MasterProcedureEnv env)