@JsonCreator public Split( @JsonProperty("connectorId") ConnectorId connectorId, @JsonProperty("transactionHandle") ConnectorTransactionHandle transactionHandle, @JsonProperty("connectorSplit") ConnectorSplit connectorSplit, @JsonProperty("lifespan") Lifespan lifespan) { this.connectorId = requireNonNull(connectorId, "connectorId is null"); this.transactionHandle = requireNonNull(transactionHandle, "transactionHandle is null"); this.connectorSplit = requireNonNull(connectorSplit, "connectorSplit is null"); this.lifespan = requireNonNull(lifespan, "lifespan is null"); }
@JsonCreator public Split( @JsonProperty("connectorId") ConnectorId connectorId, @JsonProperty("transactionHandle") ConnectorTransactionHandle transactionHandle, @JsonProperty("connectorSplit") ConnectorSplit connectorSplit, @JsonProperty("lifespan") Lifespan lifespan) { this.connectorId = requireNonNull(connectorId, "connectorId is null"); this.transactionHandle = requireNonNull(transactionHandle, "transactionHandle is null"); this.connectorSplit = requireNonNull(connectorSplit, "connectorSplit is null"); this.lifespan = requireNonNull(lifespan, "lifespan is null"); }
public TaskWideInternalJoinBridgeDataManager(Function<Lifespan, T> lookupSourceFactoryProvider, int probeFactoryCount, int outerFactoryCount) { joinBridge = lookupSourceFactoryProvider.apply(Lifespan.taskWide()); joinLifecycle = new JoinLifecycle(joinBridge, probeFactoryCount, outerFactoryCount); }
@Override public void probeOperatorClosed(Lifespan lifespan) { checkArgument(!Lifespan.taskWide().equals(lifespan), "build operator should not produce or destroy probes"); joinLifecycle.releaseForProbe(); }
@Override public void outerOperatorClosed(Lifespan lifespan) { checkArgument(Lifespan.taskWide().equals(lifespan), "join bridge is not partitioned"); joinLifecycle.releaseForOuter(); } }
@Override public T getJoinBridge(Lifespan lifespan) { checkArgument(Lifespan.taskWide().equals(lifespan)); return joinBridge; }
@Override public void probeOperatorCreated(Lifespan lifespan) { checkArgument(!Lifespan.taskWide().equals(lifespan), "build operator should not produce or destroy probes"); joinLifecycle.retainForProbe(); }
@Override public void outerOperatorFactoryClosed(Lifespan lifespan) { checkArgument(Lifespan.taskWide().equals(lifespan), "join bridge is not partitioned"); joinLifecycle.releaseForOuter(); }
public TaskWideInternalJoinBridgeDataManager(Function<Lifespan, T> lookupSourceFactoryProvider, int probeFactoryCount, int outerFactoryCount) { joinBridge = lookupSourceFactoryProvider.apply(Lifespan.taskWide()); joinLifecycle = new JoinLifecycle(joinBridge, probeFactoryCount, outerFactoryCount); }
public SharedInternalJoinBridgeDataManager(Function<Lifespan, T> lookupSourceFactoryProvider, int probeFactoryCount, int outerFactoryCount) { this.taskWideJoinBridge = lookupSourceFactoryProvider.apply(Lifespan.taskWide()); this.joinLifecycle = new JoinLifecycle(taskWideJoinBridge, probeFactoryCount, outerFactoryCount); }
@Override public void probeOperatorClosed(Lifespan lifespan) { checkArgument(!Lifespan.taskWide().equals(lifespan), "build operator should not produce or destroy probes"); joinLifecycle.releaseForProbe(); }
@Override public void probeOperatorFactoryClosed(Lifespan lifespan) { checkArgument(!Lifespan.taskWide().equals(lifespan)); data(lifespan).joinLifecycle.releaseForProbe(); }
@Override public void probeOperatorClosed(Lifespan lifespan) { checkArgument(!Lifespan.taskWide().equals(lifespan)); data(lifespan).joinLifecycle.releaseForProbe(); }
@Override public void outerOperatorClosed(Lifespan lifespan) { checkArgument(!Lifespan.taskWide().equals(lifespan)); data(lifespan).joinLifecycle.releaseForOuter(); }
@Override public void startLifespan(Lifespan lifespan, ConnectorPartitionHandle partitionHandle) { pendingCompleted.add(lifespan); if (started) { return; } started = true; sourceScheduler.startLifespan(Lifespan.taskWide(), NOT_PARTITIONED); sourceScheduler.noMoreLifespans(); }
@Override public ListenableFuture<OuterPositionIterator> getOuterPositionsFuture(Lifespan lifespan) { checkArgument(Lifespan.taskWide().equals(lifespan), "join bridge is not partitioned"); return transform(joinLifecycle.whenBuildAndProbeFinishes(), ignored -> taskWideJoinBridge.getOuterPositionIterator(), directExecutor()); }
@Override public ListenableFuture<OuterPositionIterator> getOuterPositionsFuture(Lifespan lifespan) { checkArgument(Lifespan.taskWide().equals(lifespan)); return transform(joinLifecycle.whenBuildAndProbeFinishes(), ignored -> joinBridge.getOuterPositionIterator(), directExecutor()); }
@Override public ListenableFuture<OuterPositionIterator> getOuterPositionsFuture(Lifespan lifespan) { checkArgument(Lifespan.taskWide().equals(lifespan), "join bridge is not partitioned"); return transform(joinLifecycle.whenBuildAndProbeFinishes(), ignored -> taskWideJoinBridge.getOuterPositionIterator(), directExecutor()); }
public void setNoNewLookups() { if (!grouped) { get(Lifespan.taskWide()).setNoNewLookups(); } }
public synchronized BuildState get(Lifespan lifespan) { if (grouped) { return buildStatesMap.computeIfAbsent(lifespan, ignored -> new BuildState()); } else { return buildStatesMap.computeIfAbsent(Lifespan.taskWide(), ignored -> new BuildState()); } }