TableDesc tableDesc = masterContext.getTableDesc(eachScan);
TableDesc tableDesc = masterContext.getTableDesc(eachScan); Tablespace space = TablespaceManager.get(tableDesc.getUri());
TableDesc tableDesc = masterContext.getTableDesc(scans[i]);
TableDesc tableDesc = masterContext.getTableDesc(scans[i]);
for (int i = 0; i < scans.length; i++) { ScanNode scan = scans[i]; TableDesc desc = stage.getContext().getTableDesc(scan);
for (int i = 0; i < scans.length; i++) { ScanNode scan = scans[i]; TableDesc desc = stage.getContext().getTableDesc(scan);
Preconditions.checkArgument(scans.length == 1, "Must be Scan Query"); ScanNode scan = scans[0]; TableDesc table = stage.context.getTableDesc(scan);
public static long getInputVolume(MasterPlan masterPlan, QueryMasterTask.QueryMasterTaskContext context, ExecutionBlock execBlock) { if (masterPlan.isLeaf(execBlock)) { ScanNode[] outerScans = execBlock.getScanNodes(); long maxVolume = 0; for (ScanNode eachScanNode: outerScans) { TableStats stat = context.getTableDesc(eachScanNode).getStats(); if (stat.getNumBytes() > maxVolume) { maxVolume = stat.getNumBytes(); } } return maxVolume; } else { long aggregatedVolume = 0; for (ExecutionBlock childBlock : masterPlan.getChilds(execBlock)) { Stage stage = context.getStage(childBlock.getId()); if (stage == null || stage.getSynchronizedState() != StageState.SUCCEEDED) { aggregatedVolume += getInputVolume(masterPlan, context, childBlock); } else { aggregatedVolume += stage.getResultStats().getNumBytes(); } } return aggregatedVolume; } }
public static long getInputVolume(MasterPlan masterPlan, QueryMasterTask.QueryMasterTaskContext context, ExecutionBlock execBlock) { if (masterPlan.isLeaf(execBlock)) { ScanNode[] outerScans = execBlock.getScanNodes(); long maxVolume = 0; for (ScanNode eachScanNode: outerScans) { TableStats stat = context.getTableDesc(eachScanNode).getStats(); if (stat.getNumBytes() > maxVolume) { maxVolume = stat.getNumBytes(); } } return maxVolume; } else { long aggregatedVolume = 0; for (ExecutionBlock childBlock : masterPlan.getChilds(execBlock)) { Stage stage = context.getStage(childBlock.getId()); if (stage == null || stage.getSynchronizedState() != StageState.SUCCEEDED) { aggregatedVolume += getInputVolume(masterPlan, context, childBlock); } else { aggregatedVolume += stage.getResultStats().getNumBytes(); } } return aggregatedVolume; } }
private static void scheduleFragmentsForLeafQuery(Stage stage) throws IOException, TajoException { ExecutionBlock execBlock = stage.getBlock(); ScanNode[] scans = execBlock.getScanNodes(); Preconditions.checkArgument(scans.length == 1, "Must be Scan Query"); ScanNode scan = scans[0]; TableDesc table = stage.context.getTableDesc(scan); Collection<Fragment> fragments = SplitUtil.getSplits( TablespaceManager.get(scan.getTableDesc().getUri()), scan, table, false); SplitUtil.preparePartitionScanPlanForSchedule(scan); Stage.scheduleFragments(stage, fragments); // The number of leaf tasks should be the number of fragments. stage.schedulerContext.setEstimatedTaskNum(fragments.size()); } }