Hi Oliver,

The state checkpointing currently does not checkpoint the state of the spout. 
It checkpoints the states of all the bolts and once that’s successful, the 
tuples emitted by the spout are acked. So currently it provides at-least once 
guarantee. 

In the ack method of the spout, you can update your offsets.

In future we will extend state checkpointing to checkpoint the state of the 
spout.

Thanks,
Arun


From:  Olivier Mallassi
Reply-To:  "[email protected]"
Date:  Tuesday, May 17, 2016 at 5:29 PM
To:  "[email protected]"
Subject:  State Checkpointing & spout state

Hello 

I would need to use the state checkpointing for recovery (btw, very useful 
feature). I am facing an issue regarding how to checkpoint the state of the my 
spout (no the checkpoint spout) as part of the "transaction". 

My Spout is reading from kafka (or equivalent) and so keeps an offset of the 
last read events. 
It keeps track of 
- the last read offset
- the emitted and acknowledged events (with their associated offset). 
- the emitted and unack events (so they can be replayed)

With state checkpointing, the bolt states will be kept but how can I keep the 
state of the source ? how can I ensure the spout replays events from the offset 
that match the checkpoint (or txid)?
Is there any guarantees in storm that the acks are received in the order they 
are sent? 

Cheers. 

olivier. 

Reply via email to