Thank you.

It will be nice if documentation cover such scenarios in more clear way. :)

пт, 23 нояб. 2018 г. в 13:25, Stig Rohde Døssing <[email protected]>:

> See
> https://github.com/apache/storm/blob/21bb1388414d373572779289edc785c7e5aa52aa/storm-client/src/jvm/org/apache/storm/daemon/GrouperFactory.java#L174
> and
> https://github.com/apache/storm/blob/21bb1388414d373572779289edc785c7e5aa52aa/storm-client/src/jvm/org/apache/storm/utils/TupleUtils.java#L38
> .
>
> The "key" field value will be hashed using Arrays.deepHashCode, so if you
> have two tuples t1 and t2, and hashCode(t1["key"]) == hashCode(t2["key"]),
> then t1 and t2 will go to the same task in "gamma".
>
> Den fre. 23. nov. 2018 kl. 09.06 skrev <[email protected]>:
>
>> Hi.
>>
>> I have a question, regarding fields grouping. In documentation we have:
>> ```
>> Fields grouping: The stream is partitioned by the fields specified in the
>> grouping. For example, if the stream is grouped by the "user-id" field,
>> tuples with the same "user-id" will always go to the same task, but tuples
>> with different "user-id"'s may go to different tasks.
>> ```
>> It is clear, when we have single point-to-point connection i.e [A]
>> --sream--> [B]. But if we have some bolt that consume 2 stream from 2
>> different bolts but use same key(also streams have same "format") for
>> fields grouping. Something like this:
>>
>> ```
>>         TopologyBuilder topology = new TopologyBuilder();
>>
>>         // ----
>>
>>         topology.setBolt("alpha", new AlphaBolt(), alphaScaleFactor);
>>
>>         topology.setBolt("beta", new BetaBolt(), betaScaleFactor);
>>
>>         Fields grouping = new Fields("key");
>>         topology.setBolt("gamma", new GammaBolt(), gammaScaleFactor)
>>                 .fieldsGrouping("alpha", "alpha-stream", grouping)
>>                 .fieldsGrouping("beta", "beta-stream", grouping);
>>
>>         // ----
>> ```
>>
>> Is there any guarantee that both streams will be partitioned in same way
>> and tuples with same value in "key" field in both streams will be directed
>> into same instance/task of "gamma" bolt?
>>
>

Reply via email to