yifanmai commented on pull request #13202: URL: https://github.com/apache/beam/pull/13202#issuecomment-721847961
Summarizing an an offline conversation with @robertwb: If you fuse two stages without a common parent, currently the parent gets set to `None` i.e. it gets promoted to a root transform. This is problematic because in [some places](https://github.com/apache/beam/blob/eeb1497875bd9f9ae1be60e4b8d2d05dd834064e/sdks/python/apache_beam/pipeline.py#L892) we assume that there is exactly one root transform. Instead we should set the parent to the lowest common ancestor. The change also applies this logic to `eliminate_common_key_with_void` and `pack_combiners`, though these are pseudo-fusions (i.e. replacing multiple stages with a single stage) rather than a "true" fusion. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
