/** {@inheritDoc} */ @Override public final Object reduce(List<GridComputeJobResult> results) throws GridException { assert results.size() == 1; GridComputeJobResult res = results.get(0); if (res.getException() != null) throw res.getException(); return res.getData(); } }
/** {@inheritDoc} */ @Override public GridNode getBalancedNode(List<GridNode> top) throws GridException { return loadMgr.getBalancedNode(taskSes, top, jobRes.getJob()); }
/** {@inheritDoc} */ @Nullable @Override protected Iterable<GridBiTuple<UUID, VisorLicense>> reduce0(List<GridComputeJobResult> results) throws GridException { Collection<GridBiTuple<UUID, VisorLicense>> licenses = new ArrayList<>(results.size()); for (GridComputeJobResult r : results) { VisorLicense license = r.getException() != null ? null : (VisorLicense) r.getData(); licenses.add(new GridBiTuple<>(r.getNode().id(), license)); } return licenses; }
/** {@inheritDoc} */ @Nullable @Override protected Map<UUID, GridBiTuple<Long, Long>> reduce0(List<GridComputeJobResult> results) throws GridException { Map<UUID, GridBiTuple<Long, Long>> total = new HashMap<>(); for (GridComputeJobResult res: results) { GridBiTuple<Long, Long> jobRes = res.getData(); total.put(res.getNode().id(), jobRes); } return total; }
/** {@inheritDoc} */ @Override public Collection<R> reduce(List<GridComputeJobResult> results) throws GridException { Collection<R> res = new ArrayList<>(results.size()); for (GridComputeJobResult jobRes : results) res.add(jobRes.<R>getData()); return res; }
Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR); ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']'); failedNodes.add(ctx.getJobResult().getNode().id()); else { ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes); ", oldNode=" + ctx.getJobResult().getNode().id() + ", sesId=" + ctx.getTaskSession().getId() + ", job=" + ctx.getJobResult().getJob() + ", jobCtx=" + ctx.getJobResult().getJobContext() + ", task=" + ctx.getTaskSession().getTaskName() + ']');
GridException e = jobRes.getException(); recordJobEvent(EVT_JOB_RESULTED, jobRes.getJobContext().getJobId(), jobRes.getNode(), "Job got resulted with: " + plc);
/** {@inheritDoc} */ @Override public GridComputeJobResultPolicy result(GridComputeJobResult res, List<GridComputeJobResult> rcvd) throws GridException { // No failover for this task. if (res.getException() != null) throw res.getException(); return GridComputeJobResultPolicy.WAIT; }
/** {@inheritDoc} */ @Nullable @Override protected Boolean reduce0(List<GridComputeJobResult> results) throws GridException { Collection<Boolean> toggles = new HashSet<>(); for (GridComputeJobResult res: results) toggles.add(res.<Boolean>getData()); // If all nodes return same result. return toggles.size() == 1; }
Integer failoverCnt = ctx.getJobResult().getJobContext().getAttribute(FAILOVER_ATTEMPT_COUNT_ATTR); ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']'); ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']'); UUID thiefId = ctx.getJobResult().getJobContext().getAttribute(THIEF_NODE_ATTR); ctx.getJobResult().getJobContext().setAttribute(THIEF_NODE_ATTR, null); if (thief.equals(ctx.getJobResult().getNode())) { U.error(log, "Job stealer node is equal to job node (will fail-over using " + "load-balancing): " + thief.id()); log.debug("Failing-over stolen job [from=" + ctx.getJobResult().getNode() + ", to=" + thief + ']'); Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR); failedNodes.add(ctx.getJobResult().getNode().id()); ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes); ctx.getJobResult().getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR, failoverCnt); ", oldNode=" + ctx.getJobResult().getNode().id() + ", sesId=" + ctx.getTaskSession().getId() + ", job=" + ctx.getJobResult().getJob() + ", jobCtx=" + ctx.getJobResult().getJobContext() +
/** {@inheritDoc} */ @Override public GridComputeJobResultPolicy result(GridComputeJobResult res, List<GridComputeJobResult> rcvd) throws GridException { // No failover. if (res.getException() != null) throw res.getException(); return GridComputeJobResultPolicy.WAIT; }
/** {@inheritDoc} */ @Override public GridComputeJobResultPolicy result(GridComputeJobResult res, List<GridComputeJobResult> rcvd) throws GridException { // No failover for this task. if (res.getException() != null) throw res.getException(); rdc.collect(res.<R1>getData()); return GridComputeJobResultPolicy.WAIT; }
/** {@inheritDoc} */ @Nullable @Override protected GridBiTuple<Iterable<GridBiTuple<Exception, UUID>>, Iterable<VisorLogSearchResult>> reduce0(List<GridComputeJobResult> results) throws GridException { Collection<VisorLogSearchResult> searchRes = new ArrayList<>(); Collection<GridBiTuple<Exception, UUID>> exRes = new ArrayList<>(); // Separate successfully executed results and exceptions. for (GridComputeJobResult result : results) { if (result.getException() != null) exRes.add(new GridBiTuple<Exception, UUID>(result.getException(), result.getNode().id())); else if(result.getData() != null) { Collection<VisorLogSearchResult> data = result.getData(); searchRes.addAll(data); } } return new GridBiTuple<Iterable<GridBiTuple<Exception, UUID>>, Iterable<VisorLogSearchResult>> (exRes.isEmpty() ? null : exRes, searchRes.isEmpty() ? null : searchRes); } /**
/** {@inheritDoc} */ @Override public Boolean reduce(List<GridComputeJobResult> results) throws GridException { return F.first(results).getData(); } }
GridNode node = res.getNode(); U.warn(log, "Failed to send job request because remote node left grid (if fail-over is enabled, " + "will attempt fail-over to another node) [node=" + node + ", taskName=" + ses.getTaskName() + ", taskSesId=" + ses.getId() + ", jobSesId=" + res.getJobContext().getJobId() + ']'); ctx.resource().invokeAnnotated(dep, res.getJob(), GridComputeJobAfterSend.class); res.getJobContext().getJobId(), null, null, null, null, null, null, false); (Map<? extends Serializable, ? extends Serializable>)res.getJobContext().getAttributes(); new GridJobExecuteRequest( ses.getId(), res.getJobContext().getJobId(), ses.getTaskName(), ses.getUserVersion(), ses.getTaskClassName(), loc ? null : marsh.marshal(res.getJob()), loc ? res.getJob() : null, ses.getStartTime(), timeout, ctx.resource().invokeAnnotated(dep, res.getJob(), GridComputeJobAfterSend.class); U.warn(log, "Job timed out prior to sending job execution request: " + res.getJob()); boolean deadNode = isDeadNode(res.getNode().id());
GridException e = res.getException();
/** {@inheritDoc} */ @Override public GridNode failover(GridFailoverContext ctx, List<GridNode> top) { U.warn(log, "Returning 'null' node for failed job (failover will not happen) [job=" + ctx.getJobResult().getJob() + ", task=" + ctx.getTaskSession().getTaskName() + ", sessionId=" + ctx.getTaskSession().getId() + ']'); return null; }
/** {@inheritDoc} */ @Override public final Collection<?> reduce(List<GridComputeJobResult> results) throws GridException { assert results.size() >= 1; Collection<Object> data = new ArrayList<>(results.size()); for (GridComputeJobResult res : results) { if (res.getException() != null) throw res.getException(); data.add(res.getData()); } return data; }
VisorDataCollectorJobResult jobData = res.getData(); UUID nid = res.getNode().id(); GridException unhandledEx = res.getException();
/** {@inheritDoc} */ @Override public byte[] reduce(List<GridComputeJobResult> results) throws GridException { return F.first(results).getData(); }