I believe all tuples with key = valueX will end up in the same instance of bolt C, regardless of whether the tuple originated from A or B.
It seems this is what Nathan mentions in this reply <https://groups.google.com/d/msg/storm-user/ueRqxGhO6QI/F-CFUfJ65r0J> as well. *"Just to make sure what Ben is saying is clear, in a fields grouping a grouping value will always go to the same consumer task, regardless of the source. Otherwise things like joins of different streams would not be possible. "* On Thu, Jan 8, 2015 at 9:42 PM, Jens-U. Mozdzen <[email protected]> wrote: > Hi Kosala, > > Zitat von "UmaraDissa1 ." <[email protected]>: > >> Hi Jens, >> >> I'm not entirely sure if I understand what you want to achieve, but >> wouldn't having two input streams to bolt C, one each from A and B, each >> with a fields grouping, solve your problem? >> > > A sends tuples with fields "key, fA1, fA2". > B sends tuples with fields "key, fB1, fB2". > > The topology is created with bolt C connecting to bolt A and bolt B, both > times via fieldsGrouping() on "key". C does run with more than one instance. > > A sends tuples with key="valueX", key="valueY" and so on (plus values for > fA1, fA2). > B sends tuples with key="valueX", key="valueY" and so on (plus values for > fB1, fB2). > > My question is: Will all tuples, either from A or B, with key="valueX", > end up in the same instance of bolt C? > > Or is grouping handled individually, thus all tuples from A with > key="valueX" will end up in the same instance of C, but all tuples from B > with key="valueX" might end up in another single instance of C? > > Regards, > Jens > >
