Hi,

I can't find information how fields grouping works in case of worker fail.

With fields grouping tuples are partitioned by some key and are sent to
different tasks.
Tuples with the same key goes to the same task.

When a worker dies, the supervisor will restart it. If it continuously
fails on startup and is unable to heartbeat to Nimbus, Nimbus will reassign
the worker to another machine.

Does it mean that while supervisor restarts node or Nimbus reassigns
worker, tuples that were processed by tasks on failed worker will be routed
to other tasks?

If yes, is it possible that while worker is restarted tuples by fields
grouping are directed to some other task, after worker is successfully
restarted or reassigned, tuples will be routed to taks on just restarted
worker?

In this case there is a chance that tuple with key "1", for example, will
be processed by task 1, while worker for task 2 is restarted. After
successful restart of worker new tuple emitted by spout with the same key
"1" will be routed to task 2 on just restarted worker, while tuple with key
"1" processing on task 1 is still in progress.

Does Storm provide guarantee that described situation will never happen and
when using fields grouping all tuples with the same key will be processed
by the same task even in the case of worker failure?


Best regards,
Evgeniy

Reply via email to