There is no conflict. As you have quoted: 

"An acker task stores a map from a spout tuple id to a pair of values. The 
first value is the task id that created the spout tuple which is used later on 
to send completion messages. The second value is a 64 bit number called the 
"ack val". The ack val is a representation of the state of the entire tuple 
tree, no matter how big or how small. It is simply the xor of all tuple ids 
that have been created and/or acked in the tree.”

So storm needs three variables to track the tuple tree of one spout tuple:
1. the spout tuple id (-7415442840981449264)
2. the ackval(-678585584408453014)
3. the task id(4)

On 2013年11月23日, at 下午1:15, fubupc <fub...@gmail.com> wrote:

> Hi everybody, I asked this question before in storm ustlist but not got 
> answer. So I posted it here again...
> 
> My question is about the tracking algorithm in 
> Guaranteeing-message-processing.
> 
> In that article, it said "An acker task stores a map from a spout tuple id to 
> a pair of values. The first value is the task id that created the spout tuple 
> which is used later on to send completion messages. The second value is a 64 
> bit number called the "ack val". The ack val is a representation of the state 
> of the entire tuple tree, no matter how big or how small. It is simply the 
> xor of all tuple ids that have been created and/or acked in the tree."
> 
> But when I try to test some simple topology with debug mode ON I found some 
> interesting log messages: 
> 2013-10-29 11:09:00 task [INFO] Emitting: spout-1 default [SOMEMESSAGE]
> 2013-10-29 11:09:00 task [INFO] Emitting: spout-1 __ack_init 
> [-7415442840981449264 -678585584408453014 4]
> As you can see: after spout emit out a tuple, it send a message to acker. So 
> far so good. But the problem is there are two 64 bit number in the message. 
> After some experiment I think the first one (-7415442840981449264) is the 
> tuple id and the other (-678585584408453014) is used for ack val calculation. 
> The third number 4 is the task id.
> 
> So it's conflict with the statement above "xor of all tuple ids" in the 
> Guaranteeing-message-processing documentation, right? The documentation is 
> wrong or I misunderstand something?
> 
> Thanks!

Reply via email to