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<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fnathanmarz%2Fstorm%2Fwiki%2FGuaranteeing-message-processing&sa=D&sntz=1&usg=AFQjCNE0e9AjEDnrBLDrzwfi8YZZfBkBNA>
.

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<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fnathanmarz%2Fstorm%2Fwiki%2FGuaranteeing-message-processing&sa=D&sntz=1&usg=AFQjCNE0e9AjEDnrBLDrzwfi8YZZfBkBNA>
documentation,
right? The documentation is wrong or I misunderstand something?

Thanks!

Reply via email to