[ https://issues.apache.org/jira/browse/FLINK-2837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15024605#comment-15024605 ]
ASF GitHub Bot commented on FLINK-2837: --------------------------------------- Github user mjsax commented on a diff in the pull request: https://github.com/apache/flink/pull/1398#discussion_r45742093 --- Diff: flink-contrib/flink-storm/src/test/java/org/apache/flink/storm/wrappers/WrapperSetupHelperTest.java --- @@ -180,8 +178,6 @@ public void testCreateTopologyContext() { builder.setBolt("bolt2", (IRichBolt) operators.get("bolt2"), dops.get("bolt2")).allGrouping("spout2"); builder.setBolt("sink", (IRichBolt) operators.get("sink"), dops.get("sink")) .shuffleGrouping("bolt1", TestDummyBolt.groupingStreamId) - .shuffleGrouping("bolt1", TestDummyBolt.shuffleStreamId) - .shuffleGrouping("bolt2", TestDummyBolt.groupingStreamId) .shuffleGrouping("bolt2", TestDummyBolt.shuffleStreamId); --- End diff -- Well. From a Storm point of view, there is only `union`. As it is the generic Storm case it includes the join case. I guess you specialized join solution would be obsolete after generic union is supported. Therefore, I would prefer to get it right from the beginning on... My idea would be to try to get rid of `TwoInputBoltWrapper` and "union" the incoming streams somehow to feed a single stream to `BoltWrapper`. The tricky part is, that we cannot use Flink's `union` because it assume the same input type, but Storm can union different types into one stream... What do you think about this idea? > FlinkTopologyBuilder cannot handle multiple input streams > --------------------------------------------------------- > > Key: FLINK-2837 > URL: https://issues.apache.org/jira/browse/FLINK-2837 > Project: Flink > Issue Type: Bug > Components: Storm Compatibility > Reporter: Matthias J. Sax > Assignee: Maximilian Michels > > FlinkTopologyBuilder cannot handle multiple input streams correctly. Instead > of union the incoming streams, it replicates the consuming bolt and each > (logical) instance processes one of the input streams. > For example: > {noformat} > final FlinkTopologyBuilder builder = new FlinkTopologyBuilder(); > builder.setSpout(spoutId1, new FiniteRandomSpout(0, 10)); > builder.setSpout(spoutId2, new FiniteRandomSpout(1, 8)); > builder.setSpout(spoutId3, new FiniteRandomSpout(2, 13)); > builder.setBolt(boltId, new MergerBolt()) > .shuffleGrouping(spoutId1) > .shuffleGrouping(spoutId2) > .shuffleGrouping(spoutId3); > builder.setBolt("sink", new BoltPrintSink(new SimpleOutputFormatter())) > .shuffleGrouping(boltId); > {noformat} > will only print the data from a single source instead of all sources. -- This message was sent by Atlassian JIRA (v6.3.4#6332)