partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any)); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); pairs.add(new GlobalPropertiesPair(partitioned1, partitioned2)); RequestedGlobalProperties replicated2 = new RequestedGlobalProperties(); replicated2.setFullyReplicated(); pairs.add(new GlobalPropertiesPair(any1, replicated2)); replicated1.setFullyReplicated(); RequestedGlobalProperties any2 = new RequestedGlobalProperties(); pairs.add(new GlobalPropertiesPair(replicated1, any2));
if (gpp.getProperties1().isMetBy(c1.getGlobalProperties()) && gpp.getProperties2().isMetBy(c2.getGlobalProperties()) ) if (desc.areCompatible(gpp.getProperties1(), gpp.getProperties2(), c1.getGlobalProperties(), c2.getGlobalProperties())) c1Clone.setRequiredGlobalProps(gpp.getProperties1()); c2.setRequiredGlobalProps(gpp.getProperties2());
if (gpp.getProperties1().isMetBy(c1.getGlobalProperties()) && gpp.getProperties2().isMetBy(c2.getGlobalProperties()) ) if (desc.areCompatible(gpp.getProperties1(), gpp.getProperties2(), c1.getGlobalProperties(), c2.getGlobalProperties())) c1Clone.setRequiredGlobalProps(gpp.getProperties1()); c2.setRequiredGlobalProps(gpp.getProperties2());
if (gpp.getProperties1().isMetBy(c1.getGlobalProperties()) && gpp.getProperties2().isMetBy(c2.getGlobalProperties()) ) if (desc.areCompatible(gpp.getProperties1(), gpp.getProperties2(), c1.getGlobalProperties(), c2.getGlobalProperties())) c1Clone.setRequiredGlobalProps(gpp.getProperties1()); c2.setRequiredGlobalProps(gpp.getProperties2());
if (gpp.getProperties1().isMetBy(c1.getGlobalProperties()) && gpp.getProperties2().isMetBy(c2.getGlobalProperties()) ) if (desc.areCompatible(gpp.getProperties1(), gpp.getProperties2(), c1.getGlobalProperties(), c2.getGlobalProperties())) c1Clone.setRequiredGlobalProps(gpp.getProperties1()); c2.setRequiredGlobalProps(gpp.getProperties2());
if (gpp.getProperties1().isMetBy(c1.getGlobalProperties()) && gpp.getProperties2().isMetBy(c2.getGlobalProperties()) ) if (desc.areCompatible(gpp.getProperties1(), gpp.getProperties2(), c1.getGlobalProperties(), c2.getGlobalProperties())) c1Clone.setRequiredGlobalProps(gpp.getProperties1()); c2.setRequiredGlobalProps(gpp.getProperties2());
partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any)); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); pairs.add(new GlobalPropertiesPair(partitioned1, partitioned2)); RequestedGlobalProperties replicated2 = new RequestedGlobalProperties(); replicated2.setFullyReplicated(); pairs.add(new GlobalPropertiesPair(any1, replicated2)); replicated1.setFullyReplicated(); RequestedGlobalProperties any2 = new RequestedGlobalProperties(); pairs.add(new GlobalPropertiesPair(replicated1, any2));
partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any)); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); pairs.add(new GlobalPropertiesPair(partitioned1, partitioned2)); RequestedGlobalProperties replicated2 = new RequestedGlobalProperties(); replicated2.setFullyReplicated(); pairs.add(new GlobalPropertiesPair(any1, replicated2)); replicated1.setFullyReplicated(); RequestedGlobalProperties any2 = new RequestedGlobalProperties(); pairs.add(new GlobalPropertiesPair(replicated1, any2));
partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any)); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); pairs.add(new GlobalPropertiesPair(partitioned1, partitioned2)); RequestedGlobalProperties replicated2 = new RequestedGlobalProperties(); replicated2.setFullyReplicated(); pairs.add(new GlobalPropertiesPair(any1, replicated2)); replicated1.setFullyReplicated(); RequestedGlobalProperties any2 = new RequestedGlobalProperties(); pairs.add(new GlobalPropertiesPair(replicated1, any2));
partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any)); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); pairs.add(new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); pairs.add(new GlobalPropertiesPair(partitioned1, partitioned2)); RequestedGlobalProperties replicated2 = new RequestedGlobalProperties(); replicated2.setFullyReplicated(); pairs.add(new GlobalPropertiesPair(any1, replicated2)); replicated1.setFullyReplicated(); RequestedGlobalProperties any2 = new RequestedGlobalProperties(); pairs.add(new GlobalPropertiesPair(replicated1, any2));
@Override public void computeInterestingPropertiesForInputs(CostEstimator estimator) { // get what we inherit and what is preserved by our user code final InterestingProperties props1 = getInterestingProperties().filterByCodeAnnotations(this, 0); final InterestingProperties props2 = getInterestingProperties().filterByCodeAnnotations(this, 1); // add all properties relevant to this node for (OperatorDescriptorDual dpd : getProperties()) { for (GlobalPropertiesPair gp : dpd.getPossibleGlobalProperties()) { // input 1 props1.addGlobalProperties(gp.getProperties1()); // input 2 props2.addGlobalProperties(gp.getProperties2()); } for (LocalPropertiesPair lp : dpd.getPossibleLocalProperties()) { // input 1 props1.addLocalProperties(lp.getProperties1()); // input 2 props2.addLocalProperties(lp.getProperties2()); } } this.input1.setInterestingProperties(props1); this.input2.setInterestingProperties(props2); for (DagConnection conn : getBroadcastConnections()) { conn.setInterestingProperties(new InterestingProperties()); } }
@Override public void computeInterestingPropertiesForInputs(CostEstimator estimator) { // get what we inherit and what is preserved by our user code final InterestingProperties props1 = getInterestingProperties().filterByCodeAnnotations(this, 0); final InterestingProperties props2 = getInterestingProperties().filterByCodeAnnotations(this, 1); // add all properties relevant to this node for (OperatorDescriptorDual dpd : getProperties()) { for (GlobalPropertiesPair gp : dpd.getPossibleGlobalProperties()) { // input 1 props1.addGlobalProperties(gp.getProperties1()); // input 2 props2.addGlobalProperties(gp.getProperties2()); } for (LocalPropertiesPair lp : dpd.getPossibleLocalProperties()) { // input 1 props1.addLocalProperties(lp.getProperties1()); // input 2 props2.addLocalProperties(lp.getProperties2()); } } this.input1.setInterestingProperties(props1); this.input2.setInterestingProperties(props2); for (DagConnection conn : getBroadcastConnections()) { conn.setInterestingProperties(new InterestingProperties()); } }
@Override public void computeInterestingPropertiesForInputs(CostEstimator estimator) { // get what we inherit and what is preserved by our user code final InterestingProperties props1 = getInterestingProperties().filterByCodeAnnotations(this, 0); final InterestingProperties props2 = getInterestingProperties().filterByCodeAnnotations(this, 1); // add all properties relevant to this node for (OperatorDescriptorDual dpd : getProperties()) { for (GlobalPropertiesPair gp : dpd.getPossibleGlobalProperties()) { // input 1 props1.addGlobalProperties(gp.getProperties1()); // input 2 props2.addGlobalProperties(gp.getProperties2()); } for (LocalPropertiesPair lp : dpd.getPossibleLocalProperties()) { // input 1 props1.addLocalProperties(lp.getProperties1()); // input 2 props2.addLocalProperties(lp.getProperties2()); } } this.input1.setInterestingProperties(props1); this.input2.setInterestingProperties(props2); for (DagConnection conn : getBroadcastConnections()) { conn.setInterestingProperties(new InterestingProperties()); } }
@Override protected List<GlobalPropertiesPair> createPossibleGlobalProperties() { if (this.customPartitioner == null) { // we accept compatible partitionings of any type RequestedGlobalProperties partitioned_left_any = new RequestedGlobalProperties(); RequestedGlobalProperties partitioned_right_any = new RequestedGlobalProperties(); partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); // add strict hash partitioning of both inputs on their full key sets RequestedGlobalProperties partitioned_left_hash = new RequestedGlobalProperties(); RequestedGlobalProperties partitioned_right_hash = new RequestedGlobalProperties(); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); return Arrays.asList(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any), new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); } else { RequestedGlobalProperties partitioned_left = new RequestedGlobalProperties(); partitioned_left.setCustomPartitioned(this.keys1, this.customPartitioner); RequestedGlobalProperties partitioned_right = new RequestedGlobalProperties(); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); } }
@Override public void computeInterestingPropertiesForInputs(CostEstimator estimator) { // get what we inherit and what is preserved by our user code final InterestingProperties props1 = getInterestingProperties().filterByCodeAnnotations(this, 0); final InterestingProperties props2 = getInterestingProperties().filterByCodeAnnotations(this, 1); // add all properties relevant to this node for (OperatorDescriptorDual dpd : getProperties()) { for (GlobalPropertiesPair gp : dpd.getPossibleGlobalProperties()) { // input 1 props1.addGlobalProperties(gp.getProperties1()); // input 2 props2.addGlobalProperties(gp.getProperties2()); } for (LocalPropertiesPair lp : dpd.getPossibleLocalProperties()) { // input 1 props1.addLocalProperties(lp.getProperties1()); // input 2 props2.addLocalProperties(lp.getProperties2()); } } this.input1.setInterestingProperties(props1); this.input2.setInterestingProperties(props2); for (DagConnection conn : getBroadcastConnections()) { conn.setInterestingProperties(new InterestingProperties()); } }
@Override protected List<GlobalPropertiesPair> createPossibleGlobalProperties() { if (this.customPartitioner == null) { // we accept compatible partitionings of any type RequestedGlobalProperties partitioned_left_any = new RequestedGlobalProperties(); RequestedGlobalProperties partitioned_right_any = new RequestedGlobalProperties(); partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); // add strict hash partitioning of both inputs on their full key sets RequestedGlobalProperties partitioned_left_hash = new RequestedGlobalProperties(); RequestedGlobalProperties partitioned_right_hash = new RequestedGlobalProperties(); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); return Arrays.asList(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any), new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); } else { RequestedGlobalProperties partitioned_left = new RequestedGlobalProperties(); partitioned_left.setCustomPartitioned(this.keys1, this.customPartitioner); RequestedGlobalProperties partitioned_right = new RequestedGlobalProperties(); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); } }
@Override protected List<GlobalPropertiesPair> createPossibleGlobalProperties() { if (this.customPartitioner == null) { // we accept compatible partitionings of any type RequestedGlobalProperties partitioned_left_any = new RequestedGlobalProperties(); RequestedGlobalProperties partitioned_right_any = new RequestedGlobalProperties(); partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); // add strict hash partitioning of both inputs on their full key sets RequestedGlobalProperties partitioned_left_hash = new RequestedGlobalProperties(); RequestedGlobalProperties partitioned_right_hash = new RequestedGlobalProperties(); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); return Arrays.asList(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any), new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); } else { RequestedGlobalProperties partitioned_left = new RequestedGlobalProperties(); partitioned_left.setCustomPartitioned(this.keys1, this.customPartitioner); RequestedGlobalProperties partitioned_right = new RequestedGlobalProperties(); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); } }
@Override protected List<GlobalPropertiesPair> createPossibleGlobalProperties() { if (this.customPartitioner == null) { // we accept compatible partitionings of any type RequestedGlobalProperties partitioned_left_any = new RequestedGlobalProperties(); RequestedGlobalProperties partitioned_right_any = new RequestedGlobalProperties(); partitioned_left_any.setAnyPartitioning(this.keys1); partitioned_right_any.setAnyPartitioning(this.keys2); // add strict hash partitioning of both inputs on their full key sets RequestedGlobalProperties partitioned_left_hash = new RequestedGlobalProperties(); RequestedGlobalProperties partitioned_right_hash = new RequestedGlobalProperties(); partitioned_left_hash.setHashPartitioned(this.keys1); partitioned_right_hash.setHashPartitioned(this.keys2); return Arrays.asList(new GlobalPropertiesPair(partitioned_left_any, partitioned_right_any), new GlobalPropertiesPair(partitioned_left_hash, partitioned_right_hash)); } else { RequestedGlobalProperties partitioned_left = new RequestedGlobalProperties(); partitioned_left.setCustomPartitioned(this.keys1, this.customPartitioner); RequestedGlobalProperties partitioned_right = new RequestedGlobalProperties(); partitioned_right.setCustomPartitioned(this.keys2, this.customPartitioner); return Collections.singletonList(new GlobalPropertiesPair(partitioned_left, partitioned_right)); } }
@Override protected List<GlobalPropertiesPair> createPossibleGlobalProperties() { ArrayList<GlobalPropertiesPair> pairs = new ArrayList<GlobalPropertiesPair>(); if (this.allowBroadcastFirst) { // replicate first RequestedGlobalProperties replicated1 = new RequestedGlobalProperties(); replicated1.setFullyReplicated(); RequestedGlobalProperties any2 = new RequestedGlobalProperties(); pairs.add(new GlobalPropertiesPair(replicated1, any2)); } if (this.allowBroadcastSecond) { // replicate second RequestedGlobalProperties any1 = new RequestedGlobalProperties(); RequestedGlobalProperties replicated2 = new RequestedGlobalProperties(); replicated2.setFullyReplicated(); pairs.add(new GlobalPropertiesPair(any1, replicated2)); } return pairs; }
@Override protected List<GlobalPropertiesPair> createPossibleGlobalProperties() { ArrayList<GlobalPropertiesPair> pairs = new ArrayList<GlobalPropertiesPair>(); if (this.allowBroadcastFirst) { // replicate first RequestedGlobalProperties replicated1 = new RequestedGlobalProperties(); replicated1.setFullyReplicated(); RequestedGlobalProperties any2 = new RequestedGlobalProperties(); pairs.add(new GlobalPropertiesPair(replicated1, any2)); } if (this.allowBroadcastSecond) { // replicate second RequestedGlobalProperties any1 = new RequestedGlobalProperties(); RequestedGlobalProperties replicated2 = new RequestedGlobalProperties(); replicated2.setFullyReplicated(); pairs.add(new GlobalPropertiesPair(any1, replicated2)); } return pairs; }