[ 
https://issues.apache.org/jira/browse/STORM-2359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16726414#comment-16726414
 ] 

Roshan Naik commented on STORM-2359:
------------------------------------

{quote}If we were to move timeouts entirely to the acker, there would be a 
potential for "lost" tuples (ones that end up not being reemitted) if messages 
between the acker and spout get lost.
 * The spout may emit a new tuple, and try to notify the acker about it. If 
this message is lost, the acker doesn't know about the tuple, and thus can't 
time it out.
{quote}
Acker will be totally clueless if all acks from downstream bolts are also lost 
for the same tuple tree.

 
{quote}We can move the timeout logic to the acker,
{quote}
Alternatives :
1) Handle timeouts in SpoutExecutor. It sends a timeout msg to ACKer. 
*+Benefit+*: May not be any better than doing in ACKer. Do you have any 
thoughts about this ?

2)  Eliminate timeout communication between Spout & ACK. Let each does its own 
timeout. *+Benefit+*: Eliminates need for:
 * Periodic sync up msgs (also avoid possibility of latency spikes in multi 
worker mode when these msgs get large).
 * A - B calculation, as well as
 * timeout msg exchanges.

TimeoutReset msgs can still be supported.

 -roshan

 

 

> Revising Message Timeouts
> -------------------------
>
>                 Key: STORM-2359
>                 URL: https://issues.apache.org/jira/browse/STORM-2359
>             Project: Apache Storm
>          Issue Type: Sub-task
>          Components: storm-core
>    Affects Versions: 2.0.0
>            Reporter: Roshan Naik
>            Assignee: Stig Rohde Døssing
>            Priority: Major
>         Attachments: STORM-2359.ods
>
>
> A revised strategy for message timeouts is proposed here.
> Design Doc:
>  
> https://docs.google.com/document/d/1am1kO7Wmf17U_Vz5_uyBB2OuSsc4TZQWRvbRhX52n5w/edit?usp=sharing



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to