@Override public MapOperation createMergeOperation(String name, MapMergeTypes mergingValue, SplitBrainMergePolicy<Data, MapMergeTypes> mergePolicy, boolean disableWanReplicationEvent) { return getDelegate().createMergeOperation(name, mergingValue, mergePolicy, disableWanReplicationEvent); }
@Override public MapOperation createMergeOperation(String name, MapMergeTypes mergingValue, SplitBrainMergePolicy<Data, MapMergeTypes> mergePolicy, boolean disableWanReplicationEvent) { return getDelegate().createMergeOperation(name, mergingValue, mergePolicy, disableWanReplicationEvent); }
@Override public MapOperation createMergeOperation(String name, MapMergeTypes mergingValue, SplitBrainMergePolicy<Data, MapMergeTypes> mergePolicy, boolean disableWanReplicationEvent) { checkWanReplicationQueues(name); return getDelegate().createMergeOperation(name, mergingValue, mergePolicy, disableWanReplicationEvent); }
@Override public MapOperation createMergeOperation(String name, MapMergeTypes mergingValue, SplitBrainMergePolicy<Data, MapMergeTypes> mergePolicy, boolean disableWanReplicationEvent) { checkWanReplicationQueues(name); return getDelegate().createMergeOperation(name, mergingValue, mergePolicy, disableWanReplicationEvent); }
private void handleUpdate(MapReplicationUpdate replicationUpdate) { Object mergePolicy = replicationUpdate.getMergePolicy(); String mapName = replicationUpdate.getMapName(); MapOperationProvider operationProvider = mapServiceContext.getMapOperationProvider(mapName); MapOperation operation; if (mergePolicy instanceof SplitBrainMergePolicy) { SerializationService serializationService = nodeEngine.getSerializationService(); MapMergeTypes mergingEntry = createMergingEntry(serializationService, replicationUpdate.getEntryView()); //noinspection unchecked operation = operationProvider.createMergeOperation(mapName, mergingEntry, (SplitBrainMergePolicy<Data, MapMergeTypes>) mergePolicy, true); } else { EntryView<Data, Data> entryView = replicationUpdate.getEntryView(); operation = operationProvider.createLegacyMergeOperation(mapName, entryView, (MapMergePolicy) mergePolicy, true); } try { int partitionId = nodeEngine.getPartitionService().getPartitionId(replicationUpdate.getEntryView().getKey()); Future future = nodeEngine.getOperationService() .invokeOnPartition(SERVICE_NAME, operation, partitionId); future.get(); wanEventTypeCounters.incrementUpdate(mapName); } catch (Throwable t) { throw rethrow(t); } } }
private void handleUpdate(MapReplicationUpdate replicationUpdate) { Object mergePolicy = replicationUpdate.getMergePolicy(); String mapName = replicationUpdate.getMapName(); MapOperationProvider operationProvider = mapServiceContext.getMapOperationProvider(mapName); MapOperation operation; if (mergePolicy instanceof SplitBrainMergePolicy) { SerializationService serializationService = nodeEngine.getSerializationService(); MapMergeTypes mergingEntry = createMergingEntry(serializationService, replicationUpdate.getEntryView()); //noinspection unchecked operation = operationProvider.createMergeOperation(mapName, mergingEntry, (SplitBrainMergePolicy<Data, MapMergeTypes>) mergePolicy, true); } else { EntryView<Data, Data> entryView = replicationUpdate.getEntryView(); operation = operationProvider.createLegacyMergeOperation(mapName, entryView, (MapMergePolicy) mergePolicy, true); } try { int partitionId = nodeEngine.getPartitionService().getPartitionId(replicationUpdate.getEntryView().getKey()); Future future = nodeEngine.getOperationService() .invokeOnPartition(SERVICE_NAME, operation, partitionId); future.get(); wanEventTypeCounters.incrementUpdate(mapName); } catch (Throwable t) { throw rethrow(t); } } }