/** * rewrite an activity cluster graph to eliminate * all one-to-one connections and merge one-to-one connected * DAGs into super activities. * * @param acg * the activity cluster graph */ public void rewrite(ActivityClusterGraph acg) { acg.getActivityMap().clear(); acg.getConnectorMap().clear(); Map<IActivity, SuperActivity> invertedActivitySuperActivityMap = new HashMap<>(); acg.getActivityClusterMap() .forEach((key, value) -> rewriteIntraActivityCluster(value, invertedActivitySuperActivityMap)); acg.getActivityClusterMap() .forEach((key, value) -> rewriteInterActivityCluster(value, invertedActivitySuperActivityMap)); invertedActivitySuperActivityMap.clear(); }
private void startRunnableActivityClusters() throws HyracksException { Set<TaskCluster> taskClusterRoots = new HashSet<>(); findRunnableTaskClusterRoots(taskClusterRoots, jobRun.getActivityClusterGraph().getActivityClusterMap().values()); if (LOGGER.isTraceEnabled()) { LOGGER.log(Level.TRACE, "Runnable TC roots: " + taskClusterRoots + ", inProgressTaskClusters: " + inProgressTaskClusters); } if (taskClusterRoots.isEmpty() && inProgressTaskClusters.isEmpty()) { ccs.getWorkQueue().schedule(new JobCleanupWork(ccs.getJobManager(), jobRun.getJobId(), JobStatus.TERMINATED, null, NoOpCallback.INSTANCE)); return; } startRunnableTaskClusters(taskClusterRoots); }
for (Entry<ActivityClusterId, ActivityCluster> entry : acg.getActivityClusterMap().entrySet()) { ActivityCluster ac = entry.getValue(); for (Entry<ActivityId, IActivity> saEntry : ac.getActivityMap().entrySet()) {
for (Entry<ActivityClusterId, ActivityCluster> entry : acg.getActivityClusterMap().entrySet()) { ActivityCluster ac = entry.getValue(); for (Entry<ActivityId, IActivity> saEntry : ac.getActivityMap().entrySet()) {
acg.getActivityClusterMap().put(ac.getId(), newActivityCluster);
for (ActivityCluster ac : acg.getActivityClusterMap().values()) { ObjectNode acJSON = om.createObjectNode();
for (ActivityCluster ac : jobRun.getActivityClusterGraph().getActivityClusterMap().values()) { if (!isPlanned(ac)) { continue;