public void commitMigration(PartitionMigrationEvent event) { migrateIndex(event); if (event.getMigrationEndpoint() == MigrationEndpoint.SOURCE) { clearPartitionData(event.getPartitionId()); } ownedPartitions.set(getMemberPartitions()); }
private void migrateIndex(PartitionMigrationEvent event) { final PartitionContainer container = partitionContainers[event.getPartitionId()]; for (RecordStore recordStore : container.getMaps().values()) { final MapContainer mapContainer = getMapContainer(recordStore.getName()); final IndexService indexService = mapContainer.getIndexService(); if (indexService.hasIndex()) { for (Record record : recordStore.getReadonlyRecordMap().values()) { if (event.getMigrationEndpoint() == MigrationEndpoint.SOURCE) { indexService.removeEntryIndex(record.getKey()); } else { Object value = record.getValue(); if (value != null) { indexService.saveEntryIndex( new QueryEntry( getSerializationService(), record.getKey(), record.getKey(), value)); } } } } } }
public void rollbackMigration(PartitionMigrationEvent event) { if (event.getMigrationEndpoint() == MigrationEndpoint.DESTINATION) { clearPartitionData(event.getPartitionId()); } ownedPartitions.set(getMemberPartitions()); }