Re: Two simultaneous tuples from 2 incoming stream process order
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
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
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