use of com.hazelcast.spi.impl.operationservice.Operation in project hazelcast by hazelcast.
the class RaftService method commitMigration.
@Override
public void commitMigration(PartitionMigrationEvent event) {
if (cpSubsystemEnabled) {
return;
}
if (event.getMigrationEndpoint() == MigrationEndpoint.SOURCE) {
UnsafeModePartitionState state = unsafeModeStates[event.getPartitionId()];
if (event.getCurrentReplicaIndex() == 0) {
// Waiting operations are registered only on primary.
Object ex = new PartitionMigratingException("Partition " + event.getPartitionId() + " is migrating!");
for (Operation op : state.getWaitingOps()) {
op.sendResponse(ex);
}
}
int thresholdReplicaIndex = event.getNewReplicaIndex();
if (thresholdReplicaIndex == -1 || thresholdReplicaIndex > getBackupCount()) {
state.reset();
}
}
}
use of com.hazelcast.spi.impl.operationservice.Operation in project hazelcast by hazelcast.
the class RaftInvocationManager method invoke.
public <T> InternalCompletableFuture<T> invoke(CPGroupId groupId, RaftOp raftOp, boolean deserializeResponse) {
if (cpSubsystemEnabled) {
Operation operation = new DefaultRaftReplicateOp(groupId, raftOp);
Invocation invocation = new RaftInvocation(operationService.getInvocationContext(), raftInvocationContext, groupId, operation, invocationMaxRetryCount, invocationRetryPauseMillis, operationCallTimeout, deserializeResponse);
return invocation.invoke();
}
return invokeOnPartition(new UnsafeRaftReplicateOp(groupId, raftOp), deserializeResponse);
}
use of com.hazelcast.spi.impl.operationservice.Operation in project hazelcast by hazelcast.
the class RaftInvocationManager method destroy.
public InternalCompletableFuture<Object> destroy(CPGroupId groupId) {
InternalCompletableFuture<Object> completedFuture = completeExceptionallyIfCPSubsystemNotAvailable();
if (completedFuture != null) {
return completedFuture;
}
Operation operation = new DestroyRaftGroupOp(groupId);
Invocation invocation = new RaftInvocation(operationService.getInvocationContext(), raftInvocationContext, groupId, operation, invocationMaxRetryCount, invocationRetryPauseMillis, operationCallTimeout);
return invocation.invoke();
}
use of com.hazelcast.spi.impl.operationservice.Operation in project hazelcast by hazelcast.
the class RaftInvocationManager method changeMembership.
<T> InternalCompletableFuture<T> changeMembership(CPGroupId groupId, long membersCommitIndex, RaftEndpoint member, MembershipChangeMode membershipChangeMode) {
InternalCompletableFuture<T> completedFuture = completeExceptionallyIfCPSubsystemNotAvailable();
if (completedFuture != null) {
return completedFuture;
}
Operation operation = new ChangeRaftGroupMembershipOp(groupId, membersCommitIndex, member, membershipChangeMode);
Invocation invocation = new RaftInvocation(operationService.getInvocationContext(), raftInvocationContext, groupId, operation, invocationMaxRetryCount, invocationRetryPauseMillis, operationCallTimeout);
return invocation.invoke();
}
use of com.hazelcast.spi.impl.operationservice.Operation in project hazelcast by hazelcast.
the class RaftInvocationManager method queryLocally.
public <T> InternalCompletableFuture<T> queryLocally(CPGroupId groupId, RaftOp raftOp, QueryPolicy queryPolicy) {
Operation operation;
if (cpSubsystemEnabled) {
operation = new RaftQueryOp(groupId, raftOp, queryPolicy);
} else {
operation = new UnsafeRaftQueryOp(groupId, raftOp);
}
operation.setPartitionId(raftService.getCPGroupPartitionId(groupId));
return nodeEngine.getOperationService().invokeOnTarget(RaftService.SERVICE_NAME, operation, nodeEngine.getThisAddress());
}
Aggregations