protected PartitionContainer createPartitionContainer(MapService service, int partitionId) { return new PartitionContainer(service, partitionId); }
@Override public void run() { partitionContainer.destroyMap(mapContainer); }
@Override protected Iterator<RecordStore> storeIterator(int partitionId) { PartitionContainer partitionContainer = mapServiceContext.getPartitionContainer(partitionId); Collection<RecordStore> recordStores = partitionContainer.getAllRecordStores(); return recordStores.iterator(); }
@Override protected void sortPartitionContainers(List<PartitionContainer> partitionContainers) { // Set last clean-up time before sorting. for (PartitionContainer partitionContainer : partitionContainers) { partitionContainer.setLastCleanupTimeCopy(partitionContainer.getLastCleanupTime()); } sort(partitionContainers, partitionContainerComparator); }
private RecordStore getRecordStoreOrNull() { int partitionId = getPartitionId(); if (partitionId == -1) { return null; } PartitionContainer partitionContainer = mapServiceContext.getPartitionContainer(partitionId); if (createRecordStoreOnDemand) { return partitionContainer.getRecordStore(name); } else { return partitionContainer.getExistingRecordStore(name); } }
private void updateMapOnDemandStats(String mapName, LocalMapOnDemandCalculatedStats onDemandStats) { PartitionContainer[] partitionContainers = mapServiceContext.getPartitionContainers(); for (PartitionContainer partitionContainer : partitionContainers) { IPartition partition = partitionService.getPartition(partitionContainer.getPartitionId()); if (partition.isLocal()) { addPrimaryStatsOf(partitionContainer.getExistingRecordStore(mapName), onDemandStats); } else { addReplicaStatsOf(partitionContainer.getExistingRecordStore(mapName), onDemandStats); } } addStructureStats(mapName, onDemandStats); }
private long getRecordStoreHeapCost(String mapName, PartitionContainer container) { RecordStore existingRecordStore = container.getExistingRecordStore(mapName); if (existingRecordStore == null) { return 0L; } return existingRecordStore.getOwnedEntryCost(); }
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)); } }
Collection<RecordStore> allRecordStores = partitionContainer.getAllRecordStores(); for (RecordStore recordStore : allRecordStores) { if (!isStatsCalculationEnabledFor(recordStore)) { continue; IPartition partition = partitionService.getPartition(partitionContainer.getPartitionId(), false); if (partition.isLocal()) { addPrimaryStatsOf(recordStore, getOrCreateOnDemandStats(statsPerMap, recordStore));
PartitionContainer[] partitionContainers = mapServiceContext.getPartitionContainers(); for (PartitionContainer partitionContainer : partitionContainers) { IPartition partition = partitionService.getPartition(partitionContainer.getPartitionId()); if (!partition.isLocal()) { continue; Indexes partitionIndexes = partitionContainer.getIndexes().get(mapName); if (partitionIndexes == null) { continue;
/** * @param partitionId partitionId */ public Indexes getIndexes(int partitionId) { if (globalIndexes != null) { return globalIndexes; } return mapServiceContext.getPartitionContainer(partitionId).getIndexes(name); }
@Override public Collection<ServiceNamespace> getAllServiceNamespaces(PartitionReplicationEvent event) { return containers[event.getPartitionId()].getAllNamespaces(event.getReplicaIndex()); }
@Override public int compare(PartitionContainer o1, PartitionContainer o2) { final long s1 = o1.getLastCleanupTimeCopy(); final long s2 = o2.getLastCleanupTimeCopy(); return (s1 < s2) ? -1 : ((s1 == s2) ? 0 : 1); } };
@Override protected long getLastCleanupTime(PartitionContainer container) { return container.getLastCleanupTime(); }
public void destroyMap(MapContainer mapContainer) { String name = mapContainer.getName(); RecordStore recordStore = maps.remove(name); if (recordStore != null) { // this call also clears and disposes Indexes for that partition recordStore.destroy(); } else { // It can be that, map is used only for locking, // because of that RecordStore is not created. // We will try to remove/clear LockStore belonging to // this IMap partition. clearLockStore(name); } // getting rid of Indexes object in case it has been initialized indexes.remove(name); MapServiceContext mapServiceContext = mapService.getMapServiceContext(); if (mapServiceContext.removeMapContainer(mapContainer)) { mapContainer.onDestroy(); } mapServiceContext.removePartitioningStrategyFromCache(mapContainer.getName()); }
private void updateMapOnDemandStats(String mapName, LocalMapOnDemandCalculatedStats onDemandStats) { PartitionContainer[] partitionContainers = mapServiceContext.getPartitionContainers(); for (PartitionContainer partitionContainer : partitionContainers) { IPartition partition = partitionService.getPartition(partitionContainer.getPartitionId()); if (partition.isLocal()) { addPrimaryStatsOf(partitionContainer.getExistingRecordStore(mapName), onDemandStats); } else { addReplicaStatsOf(partitionContainer.getExistingRecordStore(mapName), onDemandStats); } } addStructureStats(mapName, onDemandStats); }
protected int getRecordStoreSize(String mapName, PartitionContainer partitionContainer) { final RecordStore existingRecordStore = partitionContainer.getExistingRecordStore(mapName); if (existingRecordStore == null) { return 0; } return existingRecordStore.size(); }
private RecordStore getRecordStoreOrNull() { int partitionId = getPartitionId(); if (partitionId == -1) { return null; } PartitionContainer partitionContainer = mapServiceContext.getPartitionContainer(partitionId); if (createRecordStoreOnDemand) { return partitionContainer.getRecordStore(name); } else { return partitionContainer.getExistingRecordStore(name); } }
@Override protected void sortPartitionContainers(List<PartitionContainer> partitionContainers) { // Set last clean-up time before sorting. for (PartitionContainer partitionContainer : partitionContainers) { partitionContainer.setLastCleanupTimeCopy(partitionContainer.getLastCleanupTime()); } sort(partitionContainers, partitionContainerComparator); }
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)); } }