Github user fhueske commented on the issue:

    https://github.com/apache/flink/pull/2508
  
    Adding a NoOp would prevent the unions from being merged, but the output of 
the NoOp would still need to be replicated because it needs to be served to two 
different operators.
    
    if you have something like
    ```
    1 ------------\
                   >-> U_2 -> X
    2 -\          /
        >-> U_1 -<
    3 -/          \-> Y
    ```
    
    Duplicating `U_1` would would temporarily result in
    ```
    
    1 --------------\
                     >-> U_2 -> X
                    /
    2 -\-/-> U_11 -/ 
        X       
    3 -/-\-> U_12-> Y
    ```
    
    The generated plan with merged unions would be
    
    ```
    1 --\
         >->-> X
        / /
    2 -/-/--\
        /    >-> Y
    3 -/----/
    ```
    
    With adding a NoOp the plan would be:
    
    ```
    1 -----------\
                  >-> X
    2 -\         /
        >-> NO -<
    3 -/         \-> Y
    ```
    
    This plan would also duplicate record (the output of NoOp) and in addition 
add serialization overhead due to the additional operator.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to