@Override public IdentifiedDataSerializable createNew(Integer arg) { return new MapNearCacheStateHolder(); } };
public MapReplicationOperation(PartitionContainer container, Collection<ServiceNamespace> namespaces, int partitionId, int replicaIndex) { setPartitionId(partitionId).setReplicaIndex(replicaIndex); this.mapReplicationStateHolder.prepare(container, namespaces, replicaIndex); this.writeBehindStateHolder.prepare(container, namespaces, replicaIndex); this.mapNearCacheStateHolder.prepare(container, namespaces, replicaIndex); }
void prepare(PartitionContainer container, Collection<ServiceNamespace> namespaces, int replicaIndex) { MapService mapService = container.getMapService(); MetaDataGenerator metaData = getPartitionMetaDataGenerator(mapService); int partitionId = container.getPartitionId(); partitionUuid = metaData.getOrCreateUuid(partitionId); for (ServiceNamespace namespace : namespaces) { if (mapNameSequencePairs == emptyList()) { mapNameSequencePairs = new ArrayList(namespaces.size()); } ObjectNamespace mapNamespace = (ObjectNamespace) namespace; String mapName = mapNamespace.getObjectName(); mapNameSequencePairs.add(mapName); mapNameSequencePairs.add(metaData.currentSequence(mapName, partitionId)); } }
@Override protected void writeInternal(final ObjectDataOutput out) throws IOException { mapReplicationStateHolder.writeData(out); writeBehindStateHolder.writeData(out); mapNearCacheStateHolder.writeData(out); }
@Override protected void readInternal(final ObjectDataInput in) throws IOException { mapReplicationStateHolder.readData(in); writeBehindStateHolder.readData(in); mapNearCacheStateHolder.readData(in); }
@Override public void run() { mapReplicationStateHolder.applyState(); writeBehindStateHolder.applyState(); if (getReplicaIndex() == 0) { mapNearCacheStateHolder.applyState(); } }
public MapReplicationOperation(PartitionContainer container, Collection<ServiceNamespace> namespaces, int partitionId, int replicaIndex) { setPartitionId(partitionId).setReplicaIndex(replicaIndex); this.mapReplicationStateHolder.prepare(container, namespaces, replicaIndex); this.writeBehindStateHolder.prepare(container, namespaces, replicaIndex); this.mapNearCacheStateHolder.prepare(container, namespaces, replicaIndex); }
void applyState() { MapService mapService = mapReplicationOperation.getService(); MetaDataGenerator metaDataGenerator = getPartitionMetaDataGenerator(mapService); int partitionId = mapReplicationOperation.getPartitionId(); if (partitionUuid != null) { metaDataGenerator.setUuid(partitionId, partitionUuid); } for (int i = 0; i < mapNameSequencePairs.size(); ) { String mapName = (String) mapNameSequencePairs.get(i++); long sequence = (Long) mapNameSequencePairs.get(i++); metaDataGenerator.setCurrentSequence(mapName, partitionId, sequence); } }
@Override protected void writeInternal(final ObjectDataOutput out) throws IOException { mapReplicationStateHolder.writeData(out); writeBehindStateHolder.writeData(out); mapNearCacheStateHolder.writeData(out); }
@Override protected void readInternal(final ObjectDataInput in) throws IOException { mapReplicationStateHolder.readData(in); writeBehindStateHolder.readData(in); mapNearCacheStateHolder.readData(in); }
@Override public void run() { mapReplicationStateHolder.applyState(); writeBehindStateHolder.applyState(); if (getReplicaIndex() == 0) { mapNearCacheStateHolder.applyState(); } }
public MapReplicationOperation(PartitionContainer container, int partitionId, int replicaIndex) { setPartitionId(partitionId).setReplicaIndex(replicaIndex); Collection<ServiceNamespace> namespaces = container.getAllNamespaces(replicaIndex); this.mapReplicationStateHolder.prepare(container, namespaces, replicaIndex); this.writeBehindStateHolder.prepare(container, namespaces, replicaIndex); this.mapNearCacheStateHolder.prepare(container, namespaces, replicaIndex); }
void prepare(PartitionContainer container, Collection<ServiceNamespace> namespaces, int replicaIndex) { MapService mapService = container.getMapService(); MetaDataGenerator metaData = getPartitionMetaDataGenerator(mapService); int partitionId = container.getPartitionId(); partitionUuid = metaData.getOrCreateUuid(partitionId); for (ServiceNamespace namespace : namespaces) { if (mapNameSequencePairs == emptyList()) { mapNameSequencePairs = new ArrayList(namespaces.size()); } ObjectNamespace mapNamespace = (ObjectNamespace) namespace; String mapName = mapNamespace.getObjectName(); mapNameSequencePairs.add(mapName); mapNameSequencePairs.add(metaData.currentSequence(mapName, partitionId)); } }
@Override public IdentifiedDataSerializable createNew(Integer arg) { return new MapNearCacheStateHolder(); } };
public MapReplicationOperation(PartitionContainer container, int partitionId, int replicaIndex) { setPartitionId(partitionId).setReplicaIndex(replicaIndex); Collection<ServiceNamespace> namespaces = container.getAllNamespaces(replicaIndex); this.mapReplicationStateHolder.prepare(container, namespaces, replicaIndex); this.writeBehindStateHolder.prepare(container, namespaces, replicaIndex); this.mapNearCacheStateHolder.prepare(container, namespaces, replicaIndex); }
void applyState() { MapService mapService = mapReplicationOperation.getService(); MetaDataGenerator metaDataGenerator = getPartitionMetaDataGenerator(mapService); int partitionId = mapReplicationOperation.getPartitionId(); if (partitionUuid != null) { metaDataGenerator.setUuid(partitionId, partitionUuid); } for (int i = 0; i < mapNameSequencePairs.size(); ) { String mapName = (String) mapNameSequencePairs.get(i++); long sequence = (Long) mapNameSequencePairs.get(i++); metaDataGenerator.setCurrentSequence(mapName, partitionId, sequence); } }