Search in sources :

Example 1 with PartitionBackupReplicaAntiEntropyOperation

use of com.hazelcast.internal.partition.operation.PartitionBackupReplicaAntiEntropyOperation in project hazelcast by hazelcast.

the class PartitionDataSerializerHook method createFactory.

@Override
public DataSerializableFactory createFactory() {
    ConstructorFunction<Integer, IdentifiedDataSerializable>[] constructors = new ConstructorFunction[LEN];
    constructors[PARTITION_RUNTIME_STATE] = arg -> new PartitionRuntimeState();
    constructors[ASSIGN_PARTITIONS] = arg -> new AssignPartitions();
    constructors[PARTITION_BACKUP_REPLICA_ANTI_ENTROPY] = arg -> new PartitionBackupReplicaAntiEntropyOperation();
    constructors[FETCH_PARTITION_STATE] = arg -> new FetchPartitionStateOperation();
    constructors[HAS_ONGOING_MIGRATION] = arg -> new HasOngoingMigration();
    constructors[MIGRATION_COMMIT] = arg -> new MigrationCommitOperation();
    constructors[PARTITION_STATE_OP] = arg -> new PartitionStateOperation();
    constructors[PROMOTION_COMMIT] = arg -> new PromotionCommitOperation();
    constructors[REPLICA_SYNC_REQUEST] = arg -> new PartitionReplicaSyncRequest();
    constructors[REPLICA_SYNC_RESPONSE] = arg -> new PartitionReplicaSyncResponse();
    constructors[REPLICA_SYNC_RETRY_RESPONSE] = arg -> new PartitionReplicaSyncRetryResponse();
    constructors[SAFE_STATE_CHECK] = arg -> new SafeStateCheckOperation();
    constructors[SHUTDOWN_REQUEST] = arg -> new ShutdownRequestOperation();
    constructors[SHUTDOWN_RESPONSE] = arg -> new ShutdownResponseOperation();
    constructors[REPLICA_FRAGMENT_MIGRATION_STATE] = arg -> new ReplicaFragmentMigrationState();
    constructors[MIGRATION] = arg -> new MigrationOperation();
    constructors[MIGRATION_REQUEST] = arg -> new MigrationRequestOperation();
    constructors[NON_FRAGMENTED_SERVICE_NAMESPACE] = arg -> NonFragmentedServiceNamespace.INSTANCE;
    constructors[PARTITION_REPLICA] = arg -> new PartitionReplica();
    constructors[PUBLISH_COMPLETED_MIGRATIONS] = arg -> new PublishCompletedMigrationsOperation();
    constructors[PARTITION_STATE_CHECK_OP] = arg -> new PartitionStateCheckOperation();
    constructors[REPLICA_MIGRATION_EVENT] = arg -> new ReplicaMigrationEventImpl();
    constructors[MIGRATION_EVENT] = arg -> new MigrationStateImpl();
    constructors[PARTITION_LOST_EVENT] = arg -> new PartitionLostEventImpl();
    constructors[REPLICA_SYNC_REQUEST_OFFLOADABLE] = arg -> new PartitionReplicaSyncRequestOffloadable();
    return new ArrayDataSerializableFactory(constructors);
}
Also used : HasOngoingMigration(com.hazelcast.internal.partition.operation.HasOngoingMigration) ShutdownResponseOperation(com.hazelcast.internal.partition.operation.ShutdownResponseOperation) PartitionBackupReplicaAntiEntropyOperation(com.hazelcast.internal.partition.operation.PartitionBackupReplicaAntiEntropyOperation) AssignPartitions(com.hazelcast.internal.partition.operation.AssignPartitions) MigrationStateImpl(com.hazelcast.internal.partition.MigrationStateImpl) PartitionStateOperation(com.hazelcast.internal.partition.operation.PartitionStateOperation) FetchPartitionStateOperation(com.hazelcast.internal.partition.operation.FetchPartitionStateOperation) PartitionReplica(com.hazelcast.internal.partition.PartitionReplica) PartitionReplicaSyncRetryResponse(com.hazelcast.internal.partition.operation.PartitionReplicaSyncRetryResponse) PartitionRuntimeState(com.hazelcast.internal.partition.PartitionRuntimeState) ShutdownRequestOperation(com.hazelcast.internal.partition.operation.ShutdownRequestOperation) PartitionReplicaSyncResponse(com.hazelcast.internal.partition.operation.PartitionReplicaSyncResponse) FetchPartitionStateOperation(com.hazelcast.internal.partition.operation.FetchPartitionStateOperation) PartitionReplicaSyncRequest(com.hazelcast.internal.partition.operation.PartitionReplicaSyncRequest) MigrationOperation(com.hazelcast.internal.partition.operation.MigrationOperation) MigrationRequestOperation(com.hazelcast.internal.partition.operation.MigrationRequestOperation) PartitionReplicaSyncRequestOffloadable(com.hazelcast.internal.partition.operation.PartitionReplicaSyncRequestOffloadable) ConstructorFunction(com.hazelcast.internal.util.ConstructorFunction) MigrationCommitOperation(com.hazelcast.internal.partition.operation.MigrationCommitOperation) ReplicaFragmentMigrationState(com.hazelcast.internal.partition.ReplicaFragmentMigrationState) PromotionCommitOperation(com.hazelcast.internal.partition.operation.PromotionCommitOperation) SafeStateCheckOperation(com.hazelcast.internal.partition.operation.SafeStateCheckOperation) PublishCompletedMigrationsOperation(com.hazelcast.internal.partition.operation.PublishCompletedMigrationsOperation) PartitionStateCheckOperation(com.hazelcast.internal.partition.operation.PartitionStateCheckOperation) ReplicaMigrationEventImpl(com.hazelcast.internal.partition.ReplicaMigrationEventImpl) ArrayDataSerializableFactory(com.hazelcast.internal.serialization.impl.ArrayDataSerializableFactory) PartitionLostEventImpl(com.hazelcast.internal.partition.PartitionLostEventImpl)

Example 2 with PartitionBackupReplicaAntiEntropyOperation

use of com.hazelcast.internal.partition.operation.PartitionBackupReplicaAntiEntropyOperation in project hazelcast by hazelcast.

the class AbstractPartitionPrimaryReplicaAntiEntropyTask method invokePartitionBackupReplicaAntiEntropyOp.

final void invokePartitionBackupReplicaAntiEntropyOp(int replicaIndex, PartitionReplica target, Collection<ServiceNamespace> namespaces, BiConsumer<Object, Throwable> callback) {
    if (skipSendingToTarget(target)) {
        return;
    }
    PartitionReplicaManager replicaManager = partitionService.getReplicaManager();
    Map<ServiceNamespace, Long> versionMap = new HashMap<>();
    for (ServiceNamespace ns : namespaces) {
        long[] versions = replicaManager.getPartitionReplicaVersions(partitionId, ns);
        long currentReplicaVersion = versions[replicaIndex - 1];
        versionMap.put(ns, currentReplicaVersion);
    }
    boolean hasCallback = (callback != null);
    Operation op = new PartitionBackupReplicaAntiEntropyOperation(versionMap, hasCallback);
    op.setPartitionId(partitionId).setReplicaIndex(replicaIndex).setServiceName(SERVICE_NAME);
    ILogger logger = nodeEngine.getLogger(getClass());
    if (logger.isFinestEnabled()) {
        logger.finest("Sending anti-entropy operation to " + target + " for partitionId=" + partitionId + ", replicaIndex=" + replicaIndex + ", namespaces=" + versionMap);
    }
    OperationService operationService = nodeEngine.getOperationService();
    if (hasCallback) {
        operationService.createInvocationBuilder(SERVICE_NAME, op, target.address()).setTryCount(OPERATION_TRY_COUNT).setTryPauseMillis(OPERATION_TRY_PAUSE_MILLIS).invoke().whenCompleteAsync(callback);
    } else {
        operationService.send(op, target.address());
    }
}
Also used : HashMap(java.util.HashMap) PartitionBackupReplicaAntiEntropyOperation(com.hazelcast.internal.partition.operation.PartitionBackupReplicaAntiEntropyOperation) NonFragmentedServiceNamespace(com.hazelcast.internal.partition.NonFragmentedServiceNamespace) ServiceNamespace(com.hazelcast.internal.services.ServiceNamespace) ILogger(com.hazelcast.logging.ILogger) PartitionBackupReplicaAntiEntropyOperation(com.hazelcast.internal.partition.operation.PartitionBackupReplicaAntiEntropyOperation) UrgentSystemOperation(com.hazelcast.spi.impl.operationservice.UrgentSystemOperation) Operation(com.hazelcast.spi.impl.operationservice.Operation) OperationService(com.hazelcast.spi.impl.operationservice.OperationService)

Aggregations

PartitionBackupReplicaAntiEntropyOperation (com.hazelcast.internal.partition.operation.PartitionBackupReplicaAntiEntropyOperation)2 MigrationStateImpl (com.hazelcast.internal.partition.MigrationStateImpl)1 NonFragmentedServiceNamespace (com.hazelcast.internal.partition.NonFragmentedServiceNamespace)1 PartitionLostEventImpl (com.hazelcast.internal.partition.PartitionLostEventImpl)1 PartitionReplica (com.hazelcast.internal.partition.PartitionReplica)1 PartitionRuntimeState (com.hazelcast.internal.partition.PartitionRuntimeState)1 ReplicaFragmentMigrationState (com.hazelcast.internal.partition.ReplicaFragmentMigrationState)1 ReplicaMigrationEventImpl (com.hazelcast.internal.partition.ReplicaMigrationEventImpl)1 AssignPartitions (com.hazelcast.internal.partition.operation.AssignPartitions)1 FetchPartitionStateOperation (com.hazelcast.internal.partition.operation.FetchPartitionStateOperation)1 HasOngoingMigration (com.hazelcast.internal.partition.operation.HasOngoingMigration)1 MigrationCommitOperation (com.hazelcast.internal.partition.operation.MigrationCommitOperation)1 MigrationOperation (com.hazelcast.internal.partition.operation.MigrationOperation)1 MigrationRequestOperation (com.hazelcast.internal.partition.operation.MigrationRequestOperation)1 PartitionReplicaSyncRequest (com.hazelcast.internal.partition.operation.PartitionReplicaSyncRequest)1 PartitionReplicaSyncRequestOffloadable (com.hazelcast.internal.partition.operation.PartitionReplicaSyncRequestOffloadable)1 PartitionReplicaSyncResponse (com.hazelcast.internal.partition.operation.PartitionReplicaSyncResponse)1 PartitionReplicaSyncRetryResponse (com.hazelcast.internal.partition.operation.PartitionReplicaSyncRetryResponse)1 PartitionStateCheckOperation (com.hazelcast.internal.partition.operation.PartitionStateCheckOperation)1 PartitionStateOperation (com.hazelcast.internal.partition.operation.PartitionStateOperation)1