@JsonProperty public boolean isFinalQueryInfo() { return state.isDone() && getAllStages(outputStage).stream().allMatch(StageInfo::isFinalStageInfo); }
private static boolean isScheduled(Optional<StageInfo> rootStage) { if (!rootStage.isPresent()) { return false; } return getAllStages(rootStage).stream() .map(StageInfo::getState) .allMatch(state -> (state == StageState.RUNNING) || state.isDone()); }
public static String textDistributedPlan(StageInfo outputStageInfo, FunctionRegistry functionRegistry, Session session, boolean verbose) { StringBuilder builder = new StringBuilder(); List<StageInfo> allStages = getAllStages(Optional.of(outputStageInfo)); List<PlanFragment> allFragments = allStages.stream() .map(StageInfo::getPlan) .collect(toImmutableList()); Map<PlanNodeId, PlanNodeStats> aggregatedStats = aggregatePlanNodeStats(allStages); for (StageInfo stageInfo : allStages) { builder.append(formatFragment(functionRegistry, session, stageInfo.getPlan(), Optional.of(stageInfo), Optional.of(aggregatedStats), verbose, allFragments)); } return builder.toString(); }
boolean completeInfo = getAllStages(rootStage).stream().allMatch(StageInfo::isCompleteInfo); boolean isScheduled = isScheduled(rootStage);
List<StageInfo> stages = StageInfo.getAllStages(queryInfo.getOutputStage());
for (StageInfo stageInfo : getAllStages(rootStage)) { StageStats stageStats = stageInfo.getStageStats(); totalTasks += stageStats.getTotalTasks();
private static boolean isScheduled(StageInfo rootStage) { if (rootStage == null) { return false; } return getAllStages(rootStage).stream() .map(StageInfo::getState) .allMatch(state -> (state == StageState.RUNNING) || state.isDone()); } }
private static boolean atLeastOneOperatorWaitingForMemory(QueryInfo query) { return getAllStages(query.getOutputStage()).stream() .flatMap(stage -> stage.getTasks().stream()) .map(TaskInfo::getStats) .anyMatch(task -> task.getBlockedReasons().contains(WAITING_FOR_MEMORY)); }
private static boolean allQueriesBlocked(List<QueryInfo> current) { boolean allDriversBlocked = current.stream() .flatMap(query -> getAllStages(query.getOutputStage()).stream()) .flatMap(stage -> stage.getTasks().stream()) .flatMap(task -> task.getStats().getPipelines().stream()) .flatMap(pipeline -> pipeline.getDrivers().stream()) .allMatch(DriverStats::isFullyBlocked); boolean waitingForMemory = current.stream().allMatch(TestMemoryManager::atLeastOneOperatorWaitingForMemory); return allDriversBlocked && waitingForMemory; }
List<StageInfo> stages = StageInfo.getAllStages(queryInfo.getOutputStage());
for (StageInfo stageInfo : getAllStages(rootStage)) { StageStats stageStats = stageInfo.getStageStats(); totalTasks += stageStats.getTotalTasks();