Hi, I am a little curious to know why we begin at the spout level for case 1. If we replay at the failing bolt's parent level (BoltA in this case), then it should be more performant due to a decrease in duplicate processing (as compared to whole tuple tree replays).
If BoltA crashes due to some reason while replaying, only then the Spout should receive this as a failure and whole tuple tree should be replayed. This saving in duplicate processing will be more visible with several layers of bolts. I am sure there is a good reason to replay the whole tuple-tree, and want to know the same. Thanks SG On Tue, Sep 13, 2016 at 10:22 AM, P. Taylor Goetz <[email protected]> wrote: > Hi Cheney, > > Replays happen at the spout level. So if there is a failure at any point > in the tuple tree (the tuple tree being the anchored emits, unanchored > emits don’t count), the original spout tuple will be replayed. So the > replayed tuple will traverse the topology again, including unanchored > points. > > If an unanchored tuple fails downstream, it will not trigger a replay. > > Hope this helps. > > -Taylor > > > On Sep 13, 2016, at 4:42 AM, Cheney Chen <[email protected]> wrote: > > Hi there, > > We're using storm 1.0.1, and I'm checking through http://storm.apache. > org/releases/1.0.1/Guaranteeing-message-processing.html > > Got questions for below two scenarios. > Assume topology: S (spout) --> BoltA --> BoltB > 1. S: anchored emit, BoltA: anchored emit > Suppose BoltB processing failed w/ ack, what will the replay be, will it > execute both BoltA and BoltB or only failed BoltB processing? > > 2. S: anchored emit, BoltA: unanchored emit > Suppose BoltB processing failed w/ ack, replay will not happen, correct? > > -- > Regards, > Qili Chen (Cheney) > > E-mail: [email protected] > MP: (+1) 4086217503 > > >
