@Override protected AbstractExternalSortRunMerger getSortRunMerger(IHyracksTaskContext ctx, IRecordDescriptorProvider recordDescProvider, IFrameWriter writer, ISorter sorter, List<GeneratedRunFileReader> runs, IBinaryComparator[] comparators, INormalizedKeyComputer nmkComputer, int necessaryFrames) { return new ExternalSortGroupByRunMerger(ctx, sorter, runs, sortFields, recordDescProvider.getInputRecordDescriptor(new ActivityId(odId, SORT_ACTIVITY_ID), 0), partialAggRecordDesc, outputRecordDesc, necessaryFrames, writer, groupFields, nmkComputer, comparators, partialAggregatorFactory, mergeAggregatorFactory, !finalStage); } };
public static ActivityId create(DataInput dis) throws IOException { ActivityId activityId = new ActivityId(); activityId.readFields(dis); return activityId; }
public static ActivityId parse(String str) { if (str.startsWith("ANID:")) { str = str.substring(5); int idIdx = str.lastIndexOf(':'); return new ActivityId(OperatorDescriptorId.parse(str.substring(0, idIdx)), Integer.parseInt(str.substring(idIdx + 1))); } throw new IllegalArgumentException("Unable to parse: " + str); }
@Override public IOperatorNodePushable createPushRuntime(final IHyracksTaskContext ctx, IRecordDescriptorProvider recordDescProvider, final int partition, int nPartitions) throws HyracksDataException { return new ExternalGroupWriteOperatorNodePushable(ctx, new TaskId(new ActivityId(getOperatorId(), AGGREGATE_ACTIVITY_ID), partition), spillableTableFactory, partialRecDesc, outRecDesc, framesLimit, keyFields, firstNormalizerFactory, comparatorFactories, intermediateAggregateFactory); }
@Override public void contributeActivities(IActivityGraphBuilder builder) { CollectActivity ca = new CollectActivity(new ActivityId(odId, COLLECT_ACTIVITY_ID)); SplitActivity sa = new SplitActivity(new ActivityId(odId, SPLIT_ACTIVITY_ID)); builder.addActivity(this, ca); builder.addSourceEdge(0, ca, 0); builder.addActivity(this, sa); builder.addTargetEdge(0, sa, 0); builder.addBlockingEdge(ca, sa); } }
private static TaskAttemptId readTaskAttemptId(DataInputStream dis) throws IOException { int odid = dis.readInt(); int aid = dis.readInt(); int partition = dis.readInt(); int attempt = dis.readInt(); TaskAttemptId taId = new TaskAttemptId(new TaskId(new ActivityId(new OperatorDescriptorId(odid), aid), partition), attempt); return taId; }
@Override public void open() throws HyracksDataException { writer.open(); state = (JoinCacheTaskState) ctx.getStateObject( new TaskId(new ActivityId(getOperatorId(), JOIN_CACHE_ACTIVITY_ID), partition)); }
@Override public void open() throws HyracksDataException { // retrieve the range map from the state object (previous activity should have already stored it) // then deposit it into the ctx so that MToN-partition can pick it up Object stateObjKey = new TaskId(new ActivityId(odId, RANGEMAP_READER_ACTIVITY_ID), partition); RangeMapState rangeMapState = (RangeMapState) ctx.getStateObject(stateObjKey); TaskUtil.put(rangeMapKeyInContext, rangeMapState.rangeMap, ctx); writer.open(); }
@Override public void contributeActivities(IActivityGraphBuilder builder) { AggregateActivity aggregateAct = new AggregateActivity(new ActivityId(getOperatorId(), AGGREGATE_ACTIVITY_ID)); MergeActivity mergeAct = new MergeActivity(new ActivityId(odId, MERGE_ACTIVITY_ID)); builder.addActivity(this, aggregateAct); builder.addSourceEdge(0, aggregateAct, 0); builder.addActivity(this, mergeAct); builder.addTargetEdge(0, mergeAct, 0); builder.addBlockingEdge(aggregateAct, mergeAct); }
@Override public void contributeActivities(IActivityGraphBuilder builder) { SplitterMaterializerActivityNode sma = new SplitterMaterializerActivityNode(new ActivityId(odId, SPLITTER_MATERIALIZER_ACTIVITY_ID)); builder.addActivity(this, sma); builder.addSourceEdge(0, sma, 0); for (int i = 0; i < outputArity; i++) { builder.addTargetEdge(i, sma, i); } }
@Override public void open() throws HyracksDataException { writer.open(); state = (HashBuildTaskState) ctx .getStateObject(new TaskId(new ActivityId(getOperatorId(), 0), partition)); }
@Override public void open() throws HyracksDataException { state = (BuildAndPartitionTaskState) ctx.getStateObject( new TaskId(new ActivityId(getOperatorId(), BUILD_AND_PARTITION_ACTIVITY_ID), partition)); writer.open(); state.hybridHJ.initProbe(); if (LOGGER.isDebugEnabled()) { LOGGER.debug("OptimizedHybridHashJoin is starting the probe phase."); } }
@Override public void contributeActivities(IActivityGraphBuilder builder) { UnionActivityNode uba = new UnionActivityNode(new ActivityId(getOperatorId(), 0)); builder.addActivity(this, uba); for (int i = 0; i < inputArity; ++i) { builder.addSourceEdge(i, uba, i); } builder.addTargetEdge(0, uba, 0); }
@Override public void initialize() throws HyracksDataException { MaterializerTaskState state = (MaterializerTaskState) ctx.getStateObject( new TaskId(new ActivityId(getOperatorId(), MATERIALIZER_ACTIVITY_ID), partition)); state.writeOut(writer, new VSizeFrame(ctx), false); }
@Override public void contributeActivities(IActivityGraphBuilder builder) { IActivity intersectActivity = new IntersectActivity(new ActivityId(getOperatorId(), 0)); builder.addActivity(this, intersectActivity); for (int i = 0; i < getInputArity(); i++) { builder.addSourceEdge(i, intersectActivity, i); } builder.addTargetEdge(0, intersectActivity, 0); }
@Override public void contributeActivities(IActivityGraphBuilder builder) { SortActivity sa = getSortActivity(new ActivityId(odId, SORT_ACTIVITY_ID)); MergeActivity ma = getMergeActivity(new ActivityId(odId, MERGE_ACTIVITY_ID)); builder.addActivity(this, sa); builder.addSourceEdge(0, sa, 0); builder.addActivity(this, ma); builder.addTargetEdge(0, ma, 0); builder.addBlockingEdge(sa, ma); }
public static IHyracksTaskContext create(int frameSize, IOManager ioManager) { try { INCServiceContext serviceCtx = new TestNCServiceContext(ioManager, null); TestJobletContext jobletCtx = new TestJobletContext(frameSize, serviceCtx, new JobId(0)); TaskAttemptId tid = new TaskAttemptId(new TaskId(new ActivityId(new OperatorDescriptorId(0), 0), 0), 0); IHyracksTaskContext taskCtx = new TestTaskContext(jobletCtx, tid); return taskCtx; } catch (HyracksException e) { throw new RuntimeException(e); } }
@Override public void contributeActivities(IActivityGraphBuilder builder) { ActivityId buildAid = new ActivityId(odId, BUILD_AND_PARTITION_ACTIVITY_ID); ActivityId probeAid = new ActivityId(odId, PARTITION_AND_JOIN_ACTIVITY_ID); PartitionAndBuildActivityNode phase1 = new PartitionAndBuildActivityNode(buildAid, probeAid); ProbeAndJoinActivityNode phase2 = new ProbeAndJoinActivityNode(probeAid, buildAid); builder.addActivity(this, phase1); builder.addSourceEdge(1, phase1, 0); builder.addActivity(this, phase2); builder.addSourceEdge(0, phase2, 0); builder.addBlockingEdge(phase1, phase2); builder.addTargetEdge(0, phase2, 0); }
@Override public void contributeActivities(IActivityGraphBuilder builder) { ActivityId hbaId = new ActivityId(odId, 0); ActivityId hpaId = new ActivityId(odId, 1); HashBuildActivityNode hba = new HashBuildActivityNode(hbaId, hpaId); HashProbeActivityNode hpa = new HashProbeActivityNode(hpaId); builder.addActivity(this, hba); builder.addSourceEdge(1, hba, 0); builder.addActivity(this, hpa); builder.addSourceEdge(0, hpa, 0); builder.addTargetEdge(0, hpa, 0); builder.addBlockingEdge(hba, hpa); }
@Override public void contributeActivities(IActivityGraphBuilder builder) { ActivityId jcaId = new ActivityId(getOperatorId(), JOIN_CACHE_ACTIVITY_ID); ActivityId nljAid = new ActivityId(getOperatorId(), NL_JOIN_ACTIVITY_ID); JoinCacheActivityNode jc = new JoinCacheActivityNode(jcaId, nljAid); NestedLoopJoinActivityNode nlj = new NestedLoopJoinActivityNode(nljAid); builder.addActivity(this, jc); builder.addSourceEdge(1, jc, 0); builder.addActivity(this, nlj); builder.addSourceEdge(0, nlj, 0); builder.addTargetEdge(0, nlj, 0); builder.addBlockingEdge(jc, nlj); }