public class MigrationRequestOperation extends Operation
Boolean.TRUE indicates a successful migration.
It runs on the migration source and transfers the partition with multiple shots.
It divides the partition data into fragments and send a group of fragments within each shot.| Modifier and Type | Field and Description |
|---|---|
protected MigrationInfo |
migrationInfo |
protected int |
partitionStateVersion |
protected boolean |
success |
GENERIC_PARTITION_ID| Constructor and Description |
|---|
MigrationRequestOperation() |
MigrationRequestOperation(MigrationInfo migrationInfo,
int partitionStateVersion,
boolean fragmentedMigrationEnabled) |
| Modifier and Type | Method and Description |
|---|---|
void |
beforeRun()
Validates the migration operation: the UUIDs of the node should match the one in the
migrationInfo,
the cluster should be in ClusterState.ACTIVE and the node started and the partition state version from
the sender should match the local partition state version. |
int |
getFactoryId()
Returns DataSerializableFactory factory ID for this class.
|
int |
getId()
Returns type identifier for this class.
|
protected PartitionMigrationEvent |
getMigrationEvent()
Returns the event which will be forwarded to
MigrationAwareServices. |
MigrationInfo |
getMigrationInfo() |
protected InternalMigrationListener.MigrationParticipant |
getMigrationParticipantType() |
Object |
getResponse()
Called if and only if
Operation.returnsResponse() returned true, shortly after Operation.run()
returns. |
void |
logError(Throwable e)
Logs Exception/Error thrown during operation execution.
|
ExceptionAction |
onInvocationException(Throwable throwable)
Called when an Exception/Error is thrown
during an invocation.
|
protected void |
readInternal(ObjectDataInput in) |
boolean |
returnsResponse()
Method is intended to be subclassed.
|
void |
run() |
protected void |
toString(StringBuilder sb)
A template method allows for additional information to be passed into the
Operation.toString() method. |
boolean |
validatesTarget() |
protected void |
writeInternal(ObjectDataOutput out) |
afterRun, call, executedLocally, getCallerAddress, getCallerUuid, getCallId, getCallTimeout, getConnection, getInvocationTime, getLogger, getNodeEngine, getOperationResponseHandler, getPartitionId, getReplicaIndex, getService, getServiceName, getWaitTimeout, isUrgent, onExecutionFailure, onSetCallId, readData, sendResponse, setCallerUuid, setNodeEngine, setOperationResponseHandler, setPartitionId, setReplicaIndex, setService, setServiceName, setValidateTarget, setWaitTimeout, toString, writeDataclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetPartitionIdreadData, writeDataprotected MigrationInfo migrationInfo
protected boolean success
protected int partitionStateVersion
public MigrationRequestOperation()
public MigrationRequestOperation(MigrationInfo migrationInfo, int partitionStateVersion, boolean fragmentedMigrationEnabled)
public int getId()
IdentifiedDataSerializableprotected void writeInternal(ObjectDataOutput out) throws IOException
IOExceptionprotected void readInternal(ObjectDataInput in) throws IOException
IOExceptionprotected PartitionMigrationEvent getMigrationEvent()
MigrationAwareServices.protected InternalMigrationListener.MigrationParticipant getMigrationParticipantType()
public ExceptionAction onInvocationException(Throwable throwable)
Operationthrowable - Exception/Error thrown during invocationpublic boolean returnsResponse()
Operationtrue, Operation.getResponse() will be
called right after Operation.run() method. If it returns false, Operation.sendResponse(Object)
must be called later to finish the operation.
In other words, true is for synchronous operation and false is for asynchronous one.
Default implementation is synchronous operation (true).
returnsResponse in class Operationpublic final void beforeRun()
throws Exception
migrationInfo,
the cluster should be in ClusterState.ACTIVE and the node started and the partition state version from
the sender should match the local partition state version.beforeRun in class OperationIllegalStateException - if the UUIDs don't match or if the cluster and node state are notPartitionStateVersionMismatchException - if the partition versions don't match and this node is not the master nodeExceptionpublic MigrationInfo getMigrationInfo()
public Object getResponse()
OperationOperation.returnsResponse() returned true, shortly after Operation.run()
returns.getResponse in class Operationpublic final boolean validatesTarget()
validatesTarget in class Operationpublic void logError(Throwable e)
Operationprotected void toString(StringBuilder sb)
OperationOperation.toString() method. So an Operation
subclass can override this method and add additional debugging content. The default implementation does nothing so
one is not forced to provide an empty implementation.
It is a good practice always to call the super.toString(stringBuffer) when implementing this method to make sure
that the super class can inject content if needed.public final int getFactoryId()
IdentifiedDataSerializablegetFactoryId in interface IdentifiedDataSerializableCopyright © 2018 Hazelcast, Inc.. All Rights Reserved.