Hi Arun, Great to hear about the patch you are working on. I have another question if you have time: Right now I'm seeing acking a bit early in the chain, specifically for a windowed bolt we have which extends BaseWindowedBolt. The messages seem to be acked right before they reach this bolt, and if I replace it with a simple stateful bolt, the acking starts working as expected again. Is there support for non-stateful windowed bolts?
Best regards Alexander On Mon, Mar 7, 2016 at 12:16 PM, Arun Mahadevan <[email protected]> wrote: > Hi Alexander, > > You are right, the acking for the non-stateful bolts in a stateful > topology is better handled by the bolts themselves. > > I plan to submit a patch soon. You can track it here - > https://issues.apache.org/jira/browse/STORM-1608 > > Thanks, > Arun > > From: Alexander T > Reply-To: "[email protected]" > Date: Monday, March 7, 2016 at 4:37 PM > > To: "[email protected]" > Subject: Re: Stateful bolts and acking > > Hi Arun, > > After reading your messages a bit more thoroughly (sorry :) ) I managed to > get the basic case working. If I understand you correctly, one should > inherit from BaseRichBolt, which normally requires manual acking, but *not* > perform any manual acking. And one should *not* extends BaseBasicBolt which > normally auto-acks, since this auto-acking will not work as intended with > stateful topologies. > > This would unfortunately mean that we cannot use bolts which were written > for stateless topologies in stateful ones. Are there any plans of adapters > or to change the interface so that they can interoperate? > > Best regards > Alexander > > On Fri, Mar 4, 2016 at 7:26 PM, Arun Mahadevan <[email protected]> wrote: > >> Hi Alexander, >> >> The simple topology like the one you have mentioned with a single spout >> and a stateful bolt with an empty execute works for me. I assume you are >> anchoring the tuple in the spout’s emit. >> >> For a stateful topology, the acking doesn’t work if a bolt extends from >> BaseBasicBolt or if theres an “ack" call in the bolt’s execute. >> >> You could open a JIRA (https://issues.apache.org/jira/browse/STORM) and >> share the sample topology code where you see this issue. >> >> Thanks, >> Arun >> >> >> From: Alexander T >> Reply-To: "[email protected]" >> Date: Friday, March 4, 2016 at 11:15 PM >> To: "[email protected]" >> Subject: Re: Stateful bolts and acking >> >> Hi Arun, >> >> Thank you for your reply. I have tried both manual and automatic acking, >> and neither works. Or rather, the acker is running but my spout is still >> receiving failure callbacks after the message timeout. I have a simple >> topology with a single spout reading from a file and a single empty bolt >> doing nothing. If I change from an empty stateless bolt to an empty >> stateful bolt the acking stops working. >> >> Should I proceed with sending this in as a reproducing test case? Or is >> there anything else which I might have missed? >> >> Regards, >> Alexander >> On Mar 4, 2016 5:30 PM, "Arun Mahadevan" <[email protected]> wrote: >> >>> Hi Alexander, >>> >>> For a stateful topology the anchoring and acking is automatically taken >>> care of. >>> >>> Can you check if any of your bolts inherit BaseBasicBolt or if you are >>> manually acking. Your non-stateful bolts could inherit from BaseRichBolt >>> instead. >>> >>> Thanks, >>> Arun >>> >>> >>> From: Alexander T >>> Reply-To: "[email protected]" >>> Date: Friday, March 4, 2016 at 8:04 PM >>> To: "[email protected]" >>> Subject: Stateful bolts and acking >>> >>> Hello! >>> >>> I'm on the 1.x-branch and trying to use the stateful bolts. But I cannot >>> get it to work with acking. No matter what I try acking simply doesn't seem >>> to have any effect. I see acking tasks suceeding in the logs (ack tuples >>> forwarded to the acker, acker runs successfully), but still acking is not >>> succesful and the tuples fail after the message timeout. I've not been >>> successful in debugging the acker and the rotating map to figure out why >>> acking is not completing. I was wondering if acking is supposed to work >>> with stateful bolts, if so how and if there are any examples? Any ideas >>> would be appreciated. >>> >>> Best regards, >>> >>> Alexander T >>> >> >
