Re: Two simultaneous tuples from 2 incoming stream process order

2019-06-06 Thread bogun . dmitriy
Ok. Thanks for confirming. I have found the "reason of concurrent
execution" in my topology and it is "outside" storm code responsibility.
Guity is lazy initialisation in some of external library.

ср, 5 июн. 2019 г. в 17:48, Stig Rohde Døssing :

> The "execute" method will never be called concurrently on the same bolt
> instance. In your topology, you will have some number of bolt C copies
> running (the task count for bolt C). Each copy will only receive one tuple
> in "execute" at a time. Any other tuples received while "execute" is
> running will be queued.
>
> Den ons. 5. jun. 2019 kl. 15.34 skrev :
>
>> Hi.
>>
>> It is possible the "execute" method of the bolt to be called in
>> "parallel"? For example we have 3 bolts A, B and C:
>>
>> topology.setBolt(BOLT_A_ID, new BoltA(), scaleFactor);
>> topology.setBolt(BOLT_B_ID, new BoltB(), scaleFactor);
>> topology.setBolt(BOLT_C_ID, new BoltC(), scaleFactor)
>> .allGrouping(BOLT_A_ID)
>> .fieldsGrouping(BOLT_B_ID, new Fields("some-key");
>>
>> Bolts A and B produce tuples at the same time... i.e. their tuples will
>> arrive bolt C(same instance of this bolt) almost at the same time. Will
>> storm core postpone execution of the "second" tuple until "first" will be
>> processed? Or it will fire "execute" exactly when it will receive tuple(i.e
>> in parallel to current execution)?
>>
>> PS Storm version 1.1.0
>>
>


Re: Two simultaneous tuples from 2 incoming stream process order

2019-06-05 Thread Stig Rohde Døssing
The "execute" method will never be called concurrently on the same bolt
instance. In your topology, you will have some number of bolt C copies
running (the task count for bolt C). Each copy will only receive one tuple
in "execute" at a time. Any other tuples received while "execute" is
running will be queued.

Den ons. 5. jun. 2019 kl. 15.34 skrev :

> Hi.
>
> It is possible the "execute" method of the bolt to be called in
> "parallel"? For example we have 3 bolts A, B and C:
>
> topology.setBolt(BOLT_A_ID, new BoltA(), scaleFactor);
> topology.setBolt(BOLT_B_ID, new BoltB(), scaleFactor);
> topology.setBolt(BOLT_C_ID, new BoltC(), scaleFactor)
> .allGrouping(BOLT_A_ID)
> .fieldsGrouping(BOLT_B_ID, new Fields("some-key");
>
> Bolts A and B produce tuples at the same time... i.e. their tuples will
> arrive bolt C(same instance of this bolt) almost at the same time. Will
> storm core postpone execution of the "second" tuple until "first" will be
> processed? Or it will fire "execute" exactly when it will receive tuple(i.e
> in parallel to current execution)?
>
> PS Storm version 1.1.0
>


Two simultaneous tuples from 2 incoming stream process order

2019-06-05 Thread bogun . dmitriy
Hi.

It is possible the "execute" method of the bolt to be called in "parallel"?
For example we have 3 bolts A, B and C:

topology.setBolt(BOLT_A_ID, new BoltA(), scaleFactor);
topology.setBolt(BOLT_B_ID, new BoltB(), scaleFactor);
topology.setBolt(BOLT_C_ID, new BoltC(), scaleFactor)
.allGrouping(BOLT_A_ID)
.fieldsGrouping(BOLT_B_ID, new Fields("some-key");

Bolts A and B produce tuples at the same time... i.e. their tuples will
arrive bolt C(same instance of this bolt) almost at the same time. Will
storm core postpone execution of the "second" tuple until "first" will be
processed? Or it will fire "execute" exactly when it will receive tuple(i.e
in parallel to current execution)?

PS Storm version 1.1.0