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, setRegion
checkOnline, getRegionDir, getUser, preflightChecks, releaseSyncLatch, setUser
public SplitTableRegionProcedure()
public SplitTableRegionProcedure(MasterProcedureEnv env, RegionInfo regionToSplit, byte[] splitRow) throws java.io.IOException
java.io.IOException
protected Flow executeFromState(MasterProcedureEnv env, SplitTableRegionState state) throws java.lang.InterruptedException
java.lang.InterruptedException
protected 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.IOException
java.lang.InterruptedException
protected 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.IOException
protected void deserializeStateData(ProcedureStateSerializer serializer) throws java.io.IOException
deserializeStateData
in class AbstractStateMachineRegionProcedure<SplitTableRegionState>
java.io.IOException
public void toStringClassDetails(java.lang.StringBuilder sb)
toStringClassDetails
in class AbstractStateMachineRegionProcedure<SplitTableRegionState>
public TableProcedureInterface.TableOperationType getTableOperationType()
TableProcedureInterface
getTableOperationType
in interface TableProcedureInterface
getTableOperationType
in class AbstractStateMachineRegionProcedure<SplitTableRegionState>
protected ProcedureMetrics getProcedureMetrics(MasterProcedureEnv env)
public boolean prepareSplitRegion(MasterProcedureEnv env) throws java.io.IOException
env
- MasterProcedureEnvjava.io.IOException
public void createDaughterRegions(MasterProcedureEnv env) throws java.io.IOException
env
- MasterProcedureEnvjava.io.IOException
protected boolean abort(MasterProcedureEnv env)