@SuppressWarnings("unchecked") private void accumulateTaskHandlersAsUrnValues(Map<Member, List<ScheduledTaskHandler>> accumulator, Map<?, ?> taskHandlersMap) { ClusterService clusterService = nodeEngine.getClusterService(); IPartitionService partitionService = nodeEngine.getPartitionService(); for (Map.Entry<?, ?> entry : taskHandlersMap.entrySet()) { Member owner; Object key = entry.getKey(); if (key instanceof Number) { owner = clusterService.getMember(partitionService.getPartitionOwner((Integer) key)); } else { owner = (Member) key; } List<ScheduledTaskHandler> handlers = (List<ScheduledTaskHandler>) entry.getValue(); if (accumulator.containsKey(owner)) { List<ScheduledTaskHandler> memberUrns = accumulator.get(owner); memberUrns.addAll(handlers); } else { accumulator.put(owner, handlers); } } }
@SuppressWarnings("unchecked") private void accumulateTaskHandlersAsUrnValues(Map<Member, List<ScheduledTaskHandler>> accumulator, Map<?, ?> taskHandlersMap) { ClusterService clusterService = nodeEngine.getClusterService(); IPartitionService partitionService = nodeEngine.getPartitionService(); for (Map.Entry<?, ?> entry : taskHandlersMap.entrySet()) { Member owner; Object key = entry.getKey(); if (key instanceof Number) { owner = clusterService.getMember(partitionService.getPartitionOwner((Integer) key)); } else { owner = (Member) key; } List<ScheduledTaskHandler> handlers = (List<ScheduledTaskHandler>) entry.getValue(); if (accumulator.containsKey(owner)) { List<ScheduledTaskHandler> memberUrns = accumulator.get(owner); memberUrns.addAll(handlers); } else { accumulator.put(owner, handlers); } } }
@SuppressWarnings("unchecked") private <V> void accumulateTaskHandlersAsScheduledFutures(Map<Member, List<IScheduledFuture<V>>> accumulator, Map<?, ?> taskHandlersMap) { ClusterService clusterService = getNodeEngine().getClusterService(); IPartitionService partitionService = getNodeEngine().getPartitionService(); for (Map.Entry<?, ?> entry : taskHandlersMap.entrySet()) { Member owner; Object key = entry.getKey(); if (key instanceof Number) { owner = clusterService.getMember(partitionService.getPartitionOwner((Integer) key)); } else { owner = (Member) key; } List<ScheduledTaskHandler> handlers = (List<ScheduledTaskHandler>) entry.getValue(); List<IScheduledFuture<V>> futures = new ArrayList<IScheduledFuture<V>>(); for (ScheduledTaskHandler handler : handlers) { IScheduledFuture future = new ScheduledFutureProxy(handler, this); initializeManagedContext(future); futures.add(future); } if (accumulator.containsKey(owner)) { List<IScheduledFuture<V>> memberFutures = accumulator.get(owner); memberFutures.addAll(futures); } else { accumulator.put(owner, futures); } } }
@SuppressWarnings("unchecked") private <V> void accumulateTaskHandlersAsScheduledFutures(Map<Member, List<IScheduledFuture<V>>> accumulator, Map<?, ?> taskHandlersMap) { ClusterService clusterService = getNodeEngine().getClusterService(); IPartitionService partitionService = getNodeEngine().getPartitionService(); for (Map.Entry<?, ?> entry : taskHandlersMap.entrySet()) { Member owner; Object key = entry.getKey(); if (key instanceof Number) { owner = clusterService.getMember(partitionService.getPartitionOwner((Integer) key)); } else { owner = (Member) key; } List<ScheduledTaskHandler> handlers = (List<ScheduledTaskHandler>) entry.getValue(); List<IScheduledFuture<V>> futures = new ArrayList<IScheduledFuture<V>>(); for (ScheduledTaskHandler handler : handlers) { IScheduledFuture future = new ScheduledFutureProxy(handler, this); initializeManagedContext(future); futures.add(future); } if (accumulator.containsKey(owner)) { List<IScheduledFuture<V>> memberFutures = accumulator.get(owner); memberFutures.addAll(futures); } else { accumulator.put(owner, futures); } } }
public static void enforcePartitionTableWarmup(MapReduceService mapReduceService) throws TimeoutException { IPartitionService partitionService = mapReduceService.getNodeEngine().getPartitionService(); int partitionCount = partitionService.getPartitionCount(); long startTime = Clock.currentTimeMillis(); for (int p = 0; p < partitionCount; p++) { while (partitionService.getPartitionOwner(p) == null) { try { Thread.sleep(RETRY_PARTITION_TABLE_MILLIS); } catch (Exception ignore) { ignore(ignore); } if (Clock.currentTimeMillis() - startTime > PARTITION_READY_TIMEOUT) { throw new TimeoutException("Partition get ready timeout reached!"); } } } } }
private boolean isOwner() { final NodeEngine nodeEngine = getNodeEngine(); final Address owner = nodeEngine.getPartitionService().getPartitionOwner(getPartitionId()); return nodeEngine.getThisAddress().equals(owner); }
public static void enforcePartitionTableWarmup(MapReduceService mapReduceService) throws TimeoutException { IPartitionService partitionService = mapReduceService.getNodeEngine().getPartitionService(); int partitionCount = partitionService.getPartitionCount(); long startTime = Clock.currentTimeMillis(); for (int p = 0; p < partitionCount; p++) { while (partitionService.getPartitionOwner(p) == null) { try { Thread.sleep(RETRY_PARTITION_TABLE_MILLIS); } catch (Exception ignore) { ignore(ignore); } if (Clock.currentTimeMillis() - startTime > PARTITION_READY_TIMEOUT) { throw new TimeoutException("Partition get ready timeout reached!"); } } } } }
private boolean isOwner() { final NodeEngine nodeEngine = getNodeEngine(); final Address owner = nodeEngine.getPartitionService().getPartitionOwner(getPartitionId()); return nodeEngine.getThisAddress().equals(owner); }
@Override public boolean open(NodeEngine nodeEngine) { NodeEngineImpl nei = (NodeEngineImpl) nodeEngine; IPartitionService ps = nei.getPartitionService(); MultiMapService multiMapService = nei.getService(MultiMapService.SERVICE_NAME); ss = nei.getSerializationService(); Address partitionOwner = ps.getPartitionOwner(partitionId); if (partitionOwner == null) { return false; } multiMapContainer = multiMapService.getOrCreateCollectionContainer(partitionId, multiMapName); isBinary = multiMapContainer.getConfig().isBinary(); keyIterator = multiMapContainer.keySet().iterator(); return true; }
private boolean isOwner() { final NodeEngine nodeEngine = getNodeEngine(); final Address owner = nodeEngine.getPartitionService().getPartitionOwner(getPartitionId()); return nodeEngine.getThisAddress().equals(owner); }
private boolean isOwner() { final NodeEngine nodeEngine = getNodeEngine(); final Address owner = nodeEngine.getPartitionService().getPartitionOwner(getPartitionId()); return nodeEngine.getThisAddress().equals(owner); }
@Override public boolean open(NodeEngine nodeEngine) { NodeEngineImpl nei = (NodeEngineImpl) nodeEngine; ss = nei.getSerializationService(); Address thisAddress = nei.getThisAddress(); IPartitionService ps = nei.getPartitionService(); Data data = ss.toData(listName, StringAndPartitionAwarePartitioningStrategy.INSTANCE); int partitionId = ps.getPartitionId(data); Address partitionOwner = ps.getPartitionOwner(partitionId); if (partitionOwner == null) { return false; } if (thisAddress.equals(partitionOwner)) { ListService listService = nei.getService(ListService.SERVICE_NAME); ListContainer listContainer = listService.getOrCreateContainer(listName, false); List<CollectionItem> items = new ArrayList<CollectionItem>(listContainer.getCollection()); iterator = items.iterator(); } return true; }
@Override public boolean open(NodeEngine nodeEngine) { NodeEngineImpl nei = (NodeEngineImpl) nodeEngine; IPartitionService ps = nei.getPartitionService(); MultiMapService multiMapService = nei.getService(MultiMapService.SERVICE_NAME); ss = nei.getSerializationService(); Address partitionOwner = ps.getPartitionOwner(partitionId); if (partitionOwner == null) { return false; } multiMapContainer = multiMapService.getOrCreateCollectionContainer(partitionId, multiMapName); isBinary = multiMapContainer.getConfig().isBinary(); keyIterator = multiMapContainer.keySet().iterator(); return true; }
@Override public boolean open(NodeEngine nodeEngine) { NodeEngineImpl nei = (NodeEngineImpl) nodeEngine; IPartitionService ps = nei.getPartitionService(); MapService mapService = nei.getService(MapService.SERVICE_NAME); ss = nei.getSerializationService(); Address partitionOwner = ps.getPartitionOwner(partitionId); if (partitionOwner == null) { return false; } RecordStore recordStore = mapService.getMapServiceContext().getRecordStore(partitionId, mapName); iterator = recordStore.iterator(); return true; }
@Override public boolean open(NodeEngine nodeEngine) { NodeEngineImpl nei = (NodeEngineImpl) nodeEngine; IPartitionService ps = nei.getPartitionService(); MapService mapService = nei.getService(MapService.SERVICE_NAME); ss = nei.getSerializationService(); Address partitionOwner = ps.getPartitionOwner(partitionId); if (partitionOwner == null) { return false; } RecordStore recordStore = mapService.getMapServiceContext().getRecordStore(partitionId, mapName); iterator = recordStore.iterator(); return true; }
@Override public boolean open(NodeEngine nodeEngine) { NodeEngineImpl nei = (NodeEngineImpl) nodeEngine; ss = nei.getSerializationService(); Address thisAddress = nei.getThisAddress(); IPartitionService ps = nei.getPartitionService(); Data data = ss.toData(listName, StringAndPartitionAwarePartitioningStrategy.INSTANCE); int partitionId = ps.getPartitionId(data); Address partitionOwner = ps.getPartitionOwner(partitionId); if (partitionOwner == null) { return false; } if (thisAddress.equals(partitionOwner)) { ListService listService = nei.getService(ListService.SERVICE_NAME); ListContainer listContainer = listService.getOrCreateContainer(listName, false); List<CollectionItem> items = new ArrayList<CollectionItem>(listContainer.getCollection()); iterator = items.iterator(); } return true; }
@Override public void run() throws Exception { int partitionId = getPartitionId(); shouldRun = partitionId == MEMBER_BIN; if (partitionId >= 0) { Address partitionOwner = getNodeEngine().getPartitionService().getPartitionOwner(partitionId); shouldRun = shouldRun || getCallerAddress().equals(partitionOwner); } if (shouldRun) { getContainer().syncState(taskName, state, stats, result); } }
@Override public void run() throws Exception { int partitionId = getPartitionId(); shouldRun = partitionId == MEMBER_BIN; if (partitionId >= 0) { Address partitionOwner = getNodeEngine().getPartitionService().getPartitionOwner(partitionId); shouldRun = shouldRun || getCallerAddress().equals(partitionOwner); } if (shouldRun) { getContainer().syncState(taskName, state, stats, result); } }