Hello Abhishek,

I can try to answer this question as per my knowledge. At first you need to
understand that Transactional Topologies are been deprecated. Trident is
something which is widely used now days. Now if you have gone through the
wiki
https://github.com/nathanmarz/storm/wiki/Transactional-topologies#design-3-storms-design
It has been explained in detail that Design 3 of Storm works in 2 phases :
Processing and Committing phase which helps to avoid starvation of the
batches whose work can be done in a parallel way.

Now in case of *WordCount* exp. Batch 2 and 3 can do the partial count in a
parallel way (i.e they are not starved) during Processing phase, but when
it comes to Committing phase as order is required to be maintain to make an
*GlobalCountUpdate* in the database, committing operation should be done in
an ordered manner.

So in your case if you don't care about *GlobalCountUpdate *or something
where order is not required to be maintained, you can simply make your last
bolt a normal BaseBatchBolt by avoiding it to implement ICommiter
Interface. So now the final bolt will also work in a parallel fashion.

To understand it practically checkout this stuff
https://github.com/aniketalhat/StatefulBolts

I hope that I have answered your query, still any confusion you can revert
back to the mail.


On Thu, Mar 13, 2014 at 12:22 AM, Abhishek Priya
<[email protected]>wrote:

> If I have a transactional topology, and lets say I emit 3 batches from my
> spout.
>
> My batch 1 keeps getting some exception and is replayed again and again
> but it never reaches committer bolt.
>
> In that case, my batch 2 and 3 are going to be starved. How do I handle
> this case?
>
> Thanks
> -Abhishek
>
>
> --
> ------------------------------------------------------------
> Make a difference by making a micro-loan!
> <http://goog_16932267>
> <http://rangde.org>
>



-- 

*Aniket Alhatlinkedin.com/in/aniketalhat
<http://linkedin.com/in/aniketalhat>*
*+91 976 603 9317*

Reply via email to