You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Fabian Hueske (JIRA)" <ji...@apache.org> on 2015/12/16 21:02:46 UTC

[jira] [Created] (FLINK-3179) Combiner is not injected if Reduce or GroupReduce input is explicitly partitioned

Fabian Hueske created FLINK-3179:
------------------------------------

             Summary: Combiner is not injected if Reduce or GroupReduce input is explicitly partitioned
                 Key: FLINK-3179
                 URL: https://issues.apache.org/jira/browse/FLINK-3179
             Project: Flink
          Issue Type: Bug
          Components: Optimizer
    Affects Versions: 0.10.1
            Reporter: Fabian Hueske
            Priority: Critical
             Fix For: 1.0.0, 0.10.2


The optimizer does not inject a combiner if the input of a Reducer or GroupReducer is explicitly partitioned as in the following example

{code}
DataSet<Tuple2<String,Integer>> words = ...
DataSet<Tuple2<String,Integer>> counts = words
  .partitionByHash(0)
  .groupBy(0)
  .sum(1);
{code}

Explicit partitioning can be useful to enforce partitioning on a subset of keys or to use a different partitioning method (custom or range partitioning).

This issue should be fixed by changing the {{instantiate()}} methods of the {{ReduceProperties}} and {{GroupReduceWithCombineProperties}} classes such that a combine is injected in front of a {{PartitionPlanNode}} if it is the input of a Reduce or GroupReduce operator. This should only happen, if the Reducer is the only successor of the Partition operator.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)