Can multiple copies of the same tuple be in the queue at the same time?  Say 
1999 tuples timeout, the queue is still reduced to size 1999, correct?  What 
I’m seeing is that the queue size seems to never shrink once timeouts start 
happening.

I’ve seen timeouts previously due to large volume of data, but they did clear 
up after a few minutes.
This time, it did not clear after even 2 hours.  The Spout’s Acked # stayed the 
same for 2 hours.

From: Nathan Leung [mailto:[email protected]]
Sent: Wednesday, January 28, 2015 4:20 PM
To: user
Subject: Re: Timed-out tuples replayed over and over

Your max spout pending is 2000.  In a worst case scenario, where you have 1 
spout task, 1 bolt task, and every request is timing out, if your spout output 
queue is full it will take 4000 seconds to drain.  This is not accounting for 
any tuples that need to be replayed, which will cause the full queue drain to 
take even longer.

On Wed, Jan 28, 2015 at 4:13 PM, Tao, Jing 
<[email protected]<mailto:[email protected]>> wrote:
Hi,

I have a topology where one of the bolts is taking 2 seconds to complete due to 
a webservice call which is timing out (I set request timeout to 2 sec).

I have the following configs for the topology:
config.put(Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS, 60)
config.setMaxSpoutPending(2000)
config.setNumAckers(4)
config.setNumWorkers(3)

What I am seeing is, many message will timeout, and gets replayed every few 
minutes.  I’m assuming they are repeatedly timing out?  But if each tuple takes 
2 seconds, and TOPOLOGY_MESSAGE_TIMEOUT_SECS is 60, why are they timing out so 
much?  I had a total of 2250 tuples, and the queue still has not cleared up 
after almost 2 hours.

When the webservice call does not timeout, 2250 tuples only takes a few minutes 
to complete.

Any ideas?

Thanks,
Jing

Reply via email to