/** {@inheritDoc} */ @Override public ComputeJobSibling getJobSibling(IgniteUuid jobId) { for (ComputeJobSibling sib : getJobSiblings()) if (sib.getJobId().equals(jobId)) return sib; return null; }
/** {@inheritDoc} */ @Override public ComputeJobResultPolicy result(ComputeJobResult result, List<ComputeJobResult> received) { if (received.size() == 1) { Collection<ComputeJobSibling> jobSiblings = taskSes.getJobSiblings(); IgniteUuid jobId = received.get(0).getJobContext().getJobId(); assert jobId != null; // Cancel all jobs except first job with argument 1. for (ComputeJobSibling jobSibling : jobSiblings) { if (!jobId.equals(jobSibling.getJobId())) jobSibling.cancel(); } } return received.size() == SPLIT_COUNT ? ComputeJobResultPolicy.REDUCE : ComputeJobResultPolicy.WAIT; }
jobSibling.cancel();
/** {@inheritDoc} */ @Override public ComputeJobSibling getJobSibling(IgniteUuid jobId) { A.notNull(jobId, "jobId"); Collection<ComputeJobSibling> tmp = getJobSiblings(); for (ComputeJobSibling sibling : tmp) if (sibling.getJobId().equals(jobId)) return sibling; return null; }
/** {@inheritDoc} */ @Override public Serializable execute() { WaitAttributeType m = argument(0); checkSessionAttributes(taskSes, "fut", m); IgniteUuid jobId = jobCtx.getJobId(); for (int i = 0; i < ATTR_NUM; i ++) { String key = createKey(jobId.toString(), m, i); String val = createValue(jobId.toString(), m, i); taskSes.setAttribute(key, val); } // Check that attributes just set are present. checkSessionAttributes(taskSes, jobId.toString(), m); Collection<ComputeJobSibling> siblings = taskSes.getJobSiblings(); if (log.isInfoEnabled()) log.info("Got siblings from job [size=" + siblings.size() + ", siblings=" + siblings + ']'); // Check attributes from siblings. for (ComputeJobSibling sibling : taskSes.getJobSiblings()) { if (!sibling.getJobId().equals(jobId)) checkSessionAttributes(taskSes, sibling.getJobId().toString(), m); } try { taskSes.waitForAttribute("done", true, 0); } catch (InterruptedException e) { throw new IgniteException("Got interrupted while waiting for 'done' attribute.", e); } return null; } }
info("Checking session attributes for sibling: " + sibling); checkSessionAttributes(ses, sibling.getJobId().toString(), type);
/** {@inheritDoc} */ @Override public ComputeJobSibling getJobSibling(IgniteUuid jobId) { for (ComputeJobSibling sib : getJobSiblings()) if (sib.getJobId().equals(jobId)) return sib; return null; }
/** {@inheritDoc} */ @Override public ComputeJobSibling getJobSibling(IgniteUuid jobId) { A.notNull(jobId, "jobId"); Collection<ComputeJobSibling> tmp = getJobSiblings(); for (ComputeJobSibling sibling : tmp) if (sibling.getJobId().equals(jobId)) return sibling; return null; }