@Override public MapOperation createLegacyMergeOperation(String name, EntryView<Data, Data> mergingEntry, MapMergePolicy policy, boolean disableWanReplicationEvent) { return getDelegate().createLegacyMergeOperation(name, mergingEntry, policy, disableWanReplicationEvent); }
@Override public MapOperation createLegacyMergeOperation(String name, EntryView<Data, Data> mergingEntry, MapMergePolicy policy, boolean disableWanReplicationEvent) { return getDelegate().createLegacyMergeOperation(name, mergingEntry, policy, disableWanReplicationEvent); }
@Override public MapOperation createLegacyMergeOperation(String name, EntryView<Data, Data> mergingEntry, MapMergePolicy policy, boolean disableWanReplicationEvent) { checkWanReplicationQueues(name); return getDelegate().createLegacyMergeOperation(name, mergingEntry, policy, disableWanReplicationEvent); }
@Override public MapOperation createLegacyMergeOperation(String name, EntryView<Data, Data> mergingEntry, MapMergePolicy policy, boolean disableWanReplicationEvent) { checkWanReplicationQueues(name); return getDelegate().createLegacyMergeOperation(name, mergingEntry, policy, disableWanReplicationEvent); }
@Override protected void mergeStoreLegacy(RecordStore store, BiConsumer<Integer, Operation> consumer) { long now = Clock.currentTimeMillis(); int partitionId = store.getPartitionId(); String name = store.getName(); MapOperationProvider operationProvider = mapServiceContext.getMapOperationProvider(name); MapMergePolicy mergePolicy = ((MapMergePolicy) getMergePolicy(name)); //noinspection unchecked Iterator<Record> iterator = store.iterator(now, false); while (iterator.hasNext()) { Record record = iterator.next(); Data key = record.getKey(); Data value = toData(record.getValue()); EntryView<Data, Data> entryView = createSimpleEntryView(key, value, record); Operation operation = operationProvider.createLegacyMergeOperation(name, entryView, mergePolicy, false); consumer.accept(partitionId, operation); } }
@Override protected void mergeStoreLegacy(RecordStore store, BiConsumer<Integer, Operation> consumer) { long now = Clock.currentTimeMillis(); int partitionId = store.getPartitionId(); String name = store.getName(); MapOperationProvider operationProvider = mapServiceContext.getMapOperationProvider(name); MapMergePolicy mergePolicy = ((MapMergePolicy) getMergePolicy(name)); //noinspection unchecked Iterator<Record> iterator = store.iterator(now, false); while (iterator.hasNext()) { Record record = iterator.next(); Data key = record.getKey(); Data value = toData(record.getValue()); EntryView<Data, Data> entryView = createSimpleEntryView(key, value, record); Operation operation = operationProvider.createLegacyMergeOperation(name, entryView, mergePolicy, false); consumer.accept(partitionId, operation); } }
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); } } }