You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Yifan Mai (Jira)" <ji...@apache.org> on 2020/07/06 21:34:00 UTC

[jira] [Updated] (BEAM-10409) Add Combiner Packing to Graph Optimizer Phases

     [ https://issues.apache.org/jira/browse/BEAM-10409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yifan Mai updated BEAM-10409:
-----------------------------
    Summary: Add Combiner Packing to Graph Optimizer Phases  (was: Combiner Packing Graph Optimization)

> Add Combiner Packing to Graph Optimizer Phases
> ----------------------------------------------
>
>                 Key: BEAM-10409
>                 URL: https://issues.apache.org/jira/browse/BEAM-10409
>             Project: Beam
>          Issue Type: Improvement
>          Components: runner-core
>            Reporter: Yifan Mai
>            Assignee: Yifan Mai
>            Priority: P2
>
> Some use cases of Beam (e.g. [TensorFlow Transform|https://github.com/tensorflow/transform]) create thousands of Combine stages with a common parent. The large number of stages can cause performance issues on some runners. To alleviate, a graph optimization phase could be added to the translations module that packs compatible Combine stages into a single stage.
> The graph optimization for CombinePerKey would work as follows: If CombinePerKey stages have a common input, one input each, and one output each, pack the stages into a single stage that runs all CombinePerKeys and outputs resulting tuples to a new PCollection. A subsequent stage unpacks tuples from this PCollection and sends them to the original output PCollections.
> There is an additional issue with supporting this for CombineGlobally: because of the intermediate KeyWithVoid stage between the CombinePerKey stages and the input stage, the CombinePerKey stages do not have a common input stage, and cannot be packed. To support CombineGlobally, a common sibling elimination graph optimization phase can be used to combine the KeyWithVoid stages. After this, the CombinePerKey stages would have a common input and can be packed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)