/** * @param idx Node index. * @param job Runnable job. * @param p Optional node predicate. * @return Future object. */ private IgniteFuture<?> broadcast(int idx, IgniteRunnable job, @Nullable IgnitePredicate<ClusterNode> p) { assert idx >= 0 && idx < NODES_CNT; assert job != null; execCntr.set(0); ClusterGroup prj = grid(idx).cluster(); if (p != null) prj = prj.forPredicate(p); return compute(prj).broadcastAsync(job); }
/** {@inheritDoc} */ @Override public IgniteInternalFuture<Long> sizeLongAsync(final int part, final CachePeekMode[] peekModes) { assert peekModes != null; final PeekModes modes = parsePeekModes(peekModes, true); IgniteClusterEx cluster = ctx.grid().cluster(); final GridCacheAffinityManager aff = ctx.affinity(); final AffinityTopologyVersion topVer = aff.affinityTopologyVersion(); ClusterGroup grp = cluster.forDataNodes(name()); Collection<ClusterNode> nodes = new ArrayList<>(grp.forPredicate(new IgnitePredicate<ClusterNode>() { /** {@inheritDoc} */ @Override public boolean apply(ClusterNode clusterNode) { return ((modes.primary && aff.primaryByPartition(clusterNode, part, topVer)) || (modes.backup && aff.backupByPartition(clusterNode, part, topVer))); } }).nodes()); if (nodes.isEmpty()) return new GridFinishedFuture<>(0L); ctx.kernalContext().task().setThreadContext(TC_SUBGRID, nodes); return ctx.kernalContext().task().execute( new PartitionSizeLongTask(ctx.name(), ctx.affinity().affinityTopologyVersion(), peekModes, part), null); }
Integer res = (Integer)compute(nodes.forPredicate(p)).withTimeout(10000). execute(JobFailTask.class.getName(), "1");
ClusterGroup evenYoungest = remotes.forPredicate(evenP).forYoungest(); ClusterGroup evenOldest = remotes.forPredicate(evenP).forOldest(); ClusterGroup oddYoungest = remotes.forPredicate(oddP).forYoungest(); ClusterGroup oddOldest = remotes.forPredicate(oddP).forOldest();
@Override public WorkerSet getWorkersSet(final Complexity complexity) { final ClusterGroup grp = ignite.cluster() .forServers() .forPredicate((node) -> node.metrics().getHeapMemoryTotal() >= complexity.getRamUsage() * IGNITE_RAM_MULT_FACTOR); return new WorkerSetImpl(ignite, grp); }
/** {@inheritDoc} */ @Override public IgniteInternalFuture<Long> sizeLongAsync(final int part, final CachePeekMode[] peekModes) { assert peekModes != null; final PeekModes modes = parsePeekModes(peekModes, true); IgniteClusterEx cluster = ctx.grid().cluster(); final GridCacheAffinityManager aff = ctx.affinity(); final AffinityTopologyVersion topVer = aff.affinityTopologyVersion(); ClusterGroup grp = cluster.forDataNodes(name()); Collection<ClusterNode> nodes = new ArrayList<>(grp.forPredicate(new IgnitePredicate<ClusterNode>() { /** {@inheritDoc} */ @Override public boolean apply(ClusterNode clusterNode) { return ((modes.primary && aff.primaryByPartition(clusterNode, part, topVer)) || (modes.backup && aff.backupByPartition(clusterNode, part, topVer))); } }).nodes()); if (nodes.isEmpty()) return new GridFinishedFuture<>(0L); ctx.kernalContext().task().setThreadContext(TC_SUBGRID, nodes); return ctx.kernalContext().task().execute( new PartitionSizeLongTask(ctx.name(), ctx.affinity().affinityTopologyVersion(), peekModes, part), null); }