/** * Checks whether this node has branching output. A node's output is branched, if it has more * than one output connection. * * @return True, if the node's output branches. False otherwise. */ public boolean isBranching() { return getOutgoingConnections() != null && getOutgoingConnections().size() > 1; }
public void markAllOutgoingConnectionsAsPipelineBreaking() { if (this.outgoingConnections == null) { throw new IllegalStateException("The outgoing connections have not yet been initialized."); } for (DagConnection conn : getOutgoingConnections()) { conn.markBreaksPipeline(); } }
/** * Checks, if all outgoing connections have their interesting properties set from their target nodes. * * @return True, if on all outgoing connections, the interesting properties are set. False otherwise. */ public boolean haveAllOutputConnectionInterestingProperties() { for (DagConnection conn : getOutgoingConnections()) { if (conn.getInterestingProperties() == null) { return false; } } return true; }
public Costs getCumulativeCostsShare() { if (this.cumulativeCosts == null) { return null; } else { Costs result = cumulativeCosts.clone(); if (this.template.getOutgoingConnections() != null) { int outDegree = this.template.getOutgoingConnections().size(); if (outDegree > 0) { result.divideBy(outDegree); } } return result; } }
/** * Computes all the interesting properties that are relevant to this node. The interesting * properties are a union of the interesting properties on each outgoing connection. * However, if two interesting properties on the outgoing connections overlap, * the interesting properties will occur only once in this set. For that, this * method deduplicates and merges the interesting properties. * This method returns copies of the original interesting properties objects and * leaves the original objects, contained by the connections, unchanged. */ public void computeUnionOfInterestingPropertiesFromSuccessors() { List<DagConnection> conns = getOutgoingConnections(); if (conns.size() == 0) { // no incoming, we have none ourselves this.intProps = new InterestingProperties(); } else { this.intProps = conns.get(0).getInterestingProperties().clone(); for (int i = 1; i < conns.size(); i++) { this.intProps.addInterestingProperties(conns.get(i).getInterestingProperties()); } } this.intProps.dropTrivials(); }
long allInputs = (0x1L << currBanchingNode.getOutgoingConnections().size()) - 1;
@Override public boolean preVisit(OptimizerNode node) { // if the current node is a union if (node instanceof BinaryUnionNode) { int parallelism = -1; // set ship strategy of all outgoing connections to FORWARD. for (DagConnection conn : node.getOutgoingConnections()) { parallelism = conn.getTarget().getParallelism(); conn.setShipStrategy(ShipStrategyType.FORWARD); } // adjust parallelism to be same as successor node.setParallelism(parallelism); } // traverse the whole plan return true; }
/** * Checks whether this node has branching output. A node's output is branched, if it has more * than one output connection. * * @return True, if the node's output branches. False otherwise. */ public boolean isBranching() { return getOutgoingConnections() != null && getOutgoingConnections().size() > 1; }
/** * Checks whether this node has branching output. A node's output is branched, if it has more * than one output connection. * * @return True, if the node's output branches. False otherwise. */ public boolean isBranching() { return getOutgoingConnections() != null && getOutgoingConnections().size() > 1; }
/** * Checks whether this node has branching output. A node's output is branched, if it has more * than one output connection. * * @return True, if the node's output branches. False otherwise. */ public boolean isBranching() { return getOutgoingConnections() != null && getOutgoingConnections().size() > 1; }
/** * Checks whether this node has branching output. A node's output is branched, if it has more * than one output connection. * * @return True, if the node's output branches. False otherwise. */ public boolean isBranching() { return getOutgoingConnections() != null && getOutgoingConnections().size() > 1; }
public void markAllOutgoingConnectionsAsPipelineBreaking() { if (this.outgoingConnections == null) { throw new IllegalStateException("The outgoing connections have not yet been initialized."); } for (DagConnection conn : getOutgoingConnections()) { conn.markBreaksPipeline(); } }
public void markAllOutgoingConnectionsAsPipelineBreaking() { if (this.outgoingConnections == null) { throw new IllegalStateException("The outgoing connections have not yet been initialized."); } for (DagConnection conn : getOutgoingConnections()) { conn.markBreaksPipeline(); } }
public void markAllOutgoingConnectionsAsPipelineBreaking() { if (this.outgoingConnections == null) { throw new IllegalStateException("The outgoing connections have not yet been initialized."); } for (DagConnection conn : getOutgoingConnections()) { conn.markBreaksPipeline(); } }
public void markAllOutgoingConnectionsAsPipelineBreaking() { if (this.outgoingConnections == null) { throw new IllegalStateException("The outgoing connections have not yet been initialized."); } for (DagConnection conn : getOutgoingConnections()) { conn.markBreaksPipeline(); } }
/** * Checks, if all outgoing connections have their interesting properties set from their target nodes. * * @return True, if on all outgoing connections, the interesting properties are set. False otherwise. */ public boolean haveAllOutputConnectionInterestingProperties() { for (DagConnection conn : getOutgoingConnections()) { if (conn.getInterestingProperties() == null) { return false; } } return true; }
/** * Checks, if all outgoing connections have their interesting properties set from their target nodes. * * @return True, if on all outgoing connections, the interesting properties are set. False otherwise. */ public boolean haveAllOutputConnectionInterestingProperties() { for (DagConnection conn : getOutgoingConnections()) { if (conn.getInterestingProperties() == null) { return false; } } return true; }
/** * Checks, if all outgoing connections have their interesting properties set from their target nodes. * * @return True, if on all outgoing connections, the interesting properties are set. False otherwise. */ public boolean haveAllOutputConnectionInterestingProperties() { for (DagConnection conn : getOutgoingConnections()) { if (conn.getInterestingProperties() == null) { return false; } } return true; }
/** * Checks, if all outgoing connections have their interesting properties set from their target nodes. * * @return True, if on all outgoing connections, the interesting properties are set. False otherwise. */ public boolean haveAllOutputConnectionInterestingProperties() { for (DagConnection conn : getOutgoingConnections()) { if (conn.getInterestingProperties() == null) { return false; } } return true; }
public Costs getCumulativeCostsShare() { if (this.cumulativeCosts == null) { return null; } else { Costs result = cumulativeCosts.clone(); if (this.template.getOutgoingConnections() != null) { int outDegree = this.template.getOutgoingConnections().size(); if (outDegree > 0) { result.divideBy(outDegree); } } return result; } }