@InterfaceAudience.Private public class SplitWALRemoteProcedure extends ServerRemoteProcedure implements ServerProcedureInterface
SplitWALProcedure will help handle the situation that encounters
DoNotRetryIOException. Otherwise it will retry until success.Procedure.LockStateServerProcedureInterface.ServerOperationType| Modifier and Type | Field and Description |
|---|---|
private ServerName |
crashedServer |
private static org.slf4j.Logger |
LOG |
private String |
walPath |
dispatched, event, succ, targetServerNO_PROC_ID, NO_TIMEOUT| Constructor and Description |
|---|
SplitWALRemoteProcedure() |
SplitWALRemoteProcedure(ServerName worker,
ServerName crashedServer,
String wal) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
abort(MasterProcedureEnv env)
The abort() call is asynchronous and each procedure must decide how to deal
with it, if they want to be abortable.
|
protected void |
complete(MasterProcedureEnv env,
Throwable error) |
protected void |
deserializeStateData(ProcedureStateSerializer serializer)
Called on store load to allow the user to decode the previously serialized
state.
|
String |
getProcName() |
ServerName |
getServerName() |
ServerProcedureInterface.ServerOperationType |
getServerOperationType()
Given an operation type we can take decisions about what to do with pending operations.
|
String |
getWAL() |
boolean |
hasMetaTableRegion() |
Optional<RemoteProcedureDispatcher.RemoteOperation> |
remoteCallBuild(MasterProcedureEnv env,
ServerName serverName)
For building the remote operation.
|
protected void |
rollback(MasterProcedureEnv env)
The code to undo what was done by the execute() code.
|
protected void |
serializeStateData(ProcedureStateSerializer serializer)
The user-level code of the procedure may have some state to
persist (e.g.
|
protected void |
toStringClassDetails(StringBuilder builder)
Extend the toString() information with the procedure details
e.g.
|
completionCleanup, execute, remoteCallFailed, remoteOperationCompleted, remoteOperationDone, remoteOperationFailedacquireLock, addStackIndex, afterReplay, beforeReplay, bypass, compareTo, doExecute, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcedureMetrics, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isBypass, isFailed, isFinished, isInitializing, isLockedWhenLoading, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, skipPersistence, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, waitInitialized, wasExecutedclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitstoreInDispatchedQueueprivate static final org.slf4j.Logger LOG
private ServerName crashedServer
public SplitWALRemoteProcedure()
public SplitWALRemoteProcedure(ServerName worker, ServerName crashedServer, String wal)
protected void rollback(MasterProcedureEnv env) throws IOException, InterruptedException
Procedurerollback in class Procedure<MasterProcedureEnv>env - the environment passed to the ProcedureExecutorIOException - temporary failure, the rollback will retry laterInterruptedException - the procedure will be added back to the queue and retried laterprotected boolean abort(MasterProcedureEnv env)
ProcedureNOTE: abort() is not like Thread.interrupt(). It is just a notification that allows the procedure implementor abort.
abort in class Procedure<MasterProcedureEnv>protected void serializeStateData(ProcedureStateSerializer serializer) throws IOException
ProcedureserializeStateData in class Procedure<MasterProcedureEnv>serializer - stores the serializable stateIOExceptionprotected void deserializeStateData(ProcedureStateSerializer serializer) throws IOException
ProceduredeserializeStateData in class Procedure<MasterProcedureEnv>serializer - contains the serialized stateIOExceptionpublic Optional<RemoteProcedureDispatcher.RemoteOperation> remoteCallBuild(MasterProcedureEnv env, ServerName serverName)
RemoteProcedureDispatcher.RemoteProcedureremoteCallBuild in interface RemoteProcedureDispatcher.RemoteProcedure<MasterProcedureEnv,ServerName>protected void complete(MasterProcedureEnv env, Throwable error)
complete in class ServerRemoteProcedurepublic ServerName getServerName()
getServerName in interface ServerProcedureInterfacepublic boolean hasMetaTableRegion()
hasMetaTableRegion in interface ServerProcedureInterfacepublic ServerProcedureInterface.ServerOperationType getServerOperationType()
ServerProcedureInterfacegetServerOperationType in interface ServerProcedureInterfaceprotected void toStringClassDetails(StringBuilder builder)
ProceduretoStringClassDetails in class Procedure<MasterProcedureEnv>builder - the string builder to use to append the proc specific informationpublic String getProcName()
getProcName in class Procedure<MasterProcedureEnv>Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.